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

Allgemein

[Jenkins] Failed to execute goal org.jenkins-ci.tools:maven-hpi-plugin:1.117:hpi

Momentan bin ich – als eine Art von Übung – dabei, eine Funktionalität in einen der Jenkins-Plugins hinzuzufügen, genauer gesagt, das Groovy-Postbuild Plugin. Mein erstes Ziel war es den Quelltext in Eclipse einzubinden und den Quelltext, so wie er zu dem Zeitpunkt war, zum Laufen zu bekommen, d.h. am Schluss sollte ich eine hpi-Datei bekommen.… Weiterlesen [Jenkins] Failed to execute goal org.jenkins-ci.tools:maven-hpi-plugin:1.117:hpi

Programmierung

[Eclipse] Plugin execution not covered by lifecycle configuration

Ich bin noch recht neu bei Eclipse. In einem Fall, bei dem ich lernen wollte, wie man ein Jenkins-Plugin schreibt, tauchte die Fehlermeldung auf: Plugin execution not covered by lifecycle configuration: org.codehaus.gmaven:gmaven-plugin:1.5-jenkins-1:testCompile (execution: test-in-groovy, phase: test-compile) Lösung Die Lösung war folgende: In der Menüleiste Windows -> Preferences anklicken. Es tauchte ein neues Fenster auf (Preferences).… Weiterlesen [Eclipse] Plugin execution not covered by lifecycle configuration

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

Allgemein ·Linux

Der (static) Linking Prozess mit dem GNU Linker

In diesem Post möchte ich kurz wiedergeben, wie der Link-Algorithmus (mit statischen Bibliotheken) bei dem GNU Linker verläuft. Dabei beziehe ich mich auf http://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking, wo man neben dem Link-Algorithmus auch gut verständliche Beispiele findet (wenn auch nur auf englisch), die ich hier aber nicht nochmal beschreibe. Zu wissen, wie der Link-Algorithmus funktioniert ist wichtig wenn… Weiterlesen Der (static) Linking Prozess mit dem GNU Linker