Continuous Integration ·Programmierung

[CMake] Ein add_jar Beispiel

Man kann mit CMake auch Java-Dateien kompilieren lassen und diese in eine jar-Datei packen. Dazu habe ich ein kleines Beipsiel erstellt. Zuerst die HalloWelt.java-Datei: import java.lang.*;   public class HalloWelt { public static void main(String[] args) { System.out.println("Hallo, Welt!"); } }import java.lang.*; public class HalloWelt { public static void main(String[] args) { System.out.println("Hallo, Welt!"); }… Weiterlesen [CMake] Ein add_jar Beispiel

Continuous Integration

Erste Schritte mit der Jenkins Pipeline Library

Wer schon mit dem Jenkins Plugin Pipeline (früher auch Workflow genannt) gearbeitet hat und gerne nach dem DRY (don’t repeat yourself)-Prinzip arbeitet, findet das Jenkins Pipeline Library Plugin bestimmt interessant. Mit Hilfe dieses Library Plugins kann man eine Groovy Bibliothek schreiben und diese Funktionen in seinen Jobs verwenden. Somit braucht man diese nicht immer wieder… Weiterlesen Erste Schritte mit der Jenkins Pipeline Library

Continuous Integration ·Programmierung

Zwischendateien bei GNU make

Beim Ausführen einer Makefile durch GNU make werden Zwischendateien generiert. Bei C++ können das z.B. .o-Dateien sein. Aber auch andere Zwischendateien sind möglich. Ich habe mich ein wenig mit Zwischendateien von Makefiles beschäftigt und möchte hier ein wenig was dazu aufschreiben. Dazu habe ich hier mal ein Makefile erstellt, dass ich hier als Beispiel verwenden… Weiterlesen Zwischendateien bei GNU make

Continuous Integration ·Programmierung

CMake – Unterscheidung zwischen 32-bit und 64-bit Maschine

Beim Kompilieren, Linken und Ausführung von Projekten bzw. Programmen muss man auch manchmal eine Unterscheidung durchführen, ob das System eine 32-bit-Architektur hat oder eine 64-bit. Auch in CMake kann man eine solche Abfrage einfügen. Die Abfrage sieht i.d.R. so aus: if ( „${CMAKE_SIZEOF_VOID_P}“ EQUAL 4) # mach was für 32 bit elseif ( „${CMAKE_SIZEOF_VOID_P}“ EQUAL… Weiterlesen CMake – Unterscheidung zwischen 32-bit und 64-bit Maschine

Continuous Integration

Jenkins Pipeline Multibranch Fehler

Die Jenkins-Plugins Pipeline (früher Workflow) und Pipeline Multibranch sind recht neue Plugins. Neuerdings trat beim Schreiben eines Jenkinsfile ein Fehler auf: org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use … Ursache Das Problem das hier auftritt, tritt deshalb auf, weil man aus sicherheitstechnischen Gründen nicht alle Funktionen in einem Skript zulassen möchte. Vor allem nicht, wenn man… Weiterlesen Jenkins Pipeline Multibranch Fehler

Continuous Integration ·Programmierung

ANTLR in pom.xml hinzufügen

Beim kompilieren eines Projektes hatte ich vor kurzem die folgende Fehlermeldung: [ERROR] /home/jenkins/wap/src/main/java/wap/org/homeunix/wap/table/symbol/SymbolTable.java:[15,25] package org.antlr.runtime does not exist [ERROR] /home/jenkins/wap/src/main/java/wap/org/homeunix/wap/table/symbol/SymbolTable.java:[16,30] package org.antlr.runtime.tree does not exist Das liegt daran, dass ANTLR (ANother Tool for Language Recognition) nicht in den Abhängigkeiten in der pom.xml aufgelistet war. Dazu reicht es folgendes in der pom.xml hinzuzufügen: <dependencies> <dependency> <groupId>org.antlr</groupId>… Weiterlesen ANTLR in pom.xml hinzufügen

Continuous Integration ·Programmierung

[Jenkins/Groovy] Konsolenausgabe in Datei abspeichern

Wenn man die Konsolenausgabe eines Jobs in eine Datei abspeichern möchte, um diese Datei eventuell später zu analysieren oder nach Fehlern zu durchsuchen, dann kann man folgende Zeilen verwenden: import hudson.model.*; import hudson.*;   String getLog() { return manager.build.logFile.text; }   EnvVars envVars = manager.build.getEnvironment(manager.listener); this_ws = envVars.get(’WORKSPACE’);   // Wenn der Job im Master… Weiterlesen [Jenkins/Groovy] Konsolenausgabe in Datei abspeichern

Continuous Integration ·Programmierung

[Jenkins/Groovy] Workspace-Pfad ausgeben

Wenn man Workspace-Pfad des gerade laufenden Programmes herausfinden und ausgeben möchte, kann man dieses kleine Script hierfür verwenden: import hudson.model.*; import hudson.*;   void log(msg) { manager.listener.logger.println(msg); }   EnvVars envVars = manager.build.getEnvironment(manager.listener); log("Workspace: " + envVars.get(’WORKSPACE’));import hudson.model.*; import hudson.*; void log(msg) { manager.listener.logger.println(msg); } EnvVars envVars = manager.build.getEnvironment(manager.listener); log("Workspace: " + envVars.get(‚WORKSPACE‘));

Continuous Integration ·Programmierung

[Groovy Postbuild] Konsolenausgabe

Ich habe vergeblich versucht, mit Hilfe von Groovy etwas in die Konsoleausgabe zu schreiben, vor allem mit dem Groovy Postbuild Plugin von Jenkins. Doch jetzt habe ich zum Glück ein kleines Skript gefunden, in der genau das getan wird (https://gist.github.com/halyph/4610274): import hudson.model.*; import hudson.*;   void log(msg) { manager.listener.logger.println(msg); }   log("Hallo Welt :)");import hudson.model.*;… Weiterlesen [Groovy Postbuild] Konsolenausgabe