Wer in einem Java EE Webprojekt die beliebten Properties verwenden will, der muss dafür sorgen, dass beim Build-Prozess die entsprechenden Dateien in den Klassenpfad (target/classes) mit aufgenommen werden.
Properties File im Classpath deployen weiterlesen
Schlagwort: Build
UTF-8 kodierte Java-Builds mit Maven
Um möglichst systemunabhängig zu sein, sollte man seinen Code im UTF-8 Zeichensatz speichern. Beachtet man das nicht, meldet Maven beim Buildvorgang möglicherweise folgende Warnung:
Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
Um den UTF-8 Zeichensatz in Maven zu erzwingen, muss die Eigenschaft project.build.sourceEncoding
in der Konfigurationsdatei pom.xml gesetzt werden. Wer Analyse-Tools wie Cobertura einsetzt, der sollte außerdem noch die Eigenschaft project.reporting.outputEncoding
auf UTF-8 setzen, damit die Logfiles ebenfalls mit UTF-8 kodiert werden.
Beispiel
1 2 3 4 5 6 7 8 9 10 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> ... </project> |
Mehrere externe JARs in eine JAR einbinden
Das Einbinden von externen JAR-Bibliotheken in der eigenen JAR ist mit einem Apache Ant Build-Task recht einfach. Für mein Beispiel verweise ich auf dieses [post id=2583]Ant Build Skript[/post]. Mit nur einer weiteren Zeile (Zeile Nummer 6) kann man die build.xml so erweitern, dass alle externen Bibliotheken aus dem /lib-Verzeichnis in die eigene JAR gepackt werden:
1 2 3 4 5 6 7 | <jar destfile="${jar.dir}/${ant.project.name}-${app.version}.jar" basedir="${classes.dir}"> <manifest> <attribute name="Main-Class" value="${main.class}" /> <attribute name="Class-Path" value="${manifest.class.path}" /> </manifest> <zipgroupfileset dir="${lib.dir}/."/> </jar> |
Das zipgroupfileset
unterstützt alle Attribute des <fileset>
, wodurch über folgenden Befehl einzelne Dateien ausgeschlossen werden können:
1 | <zipgroupfileset dir="${lib.dir}/." excludes="junit-4.8.2.jar" /> |
Für weitere Infos verweise ich auf den Beitrag „NetBeans – deploying all in one jar“ von stackoverflow.
Beispiel für Apache Ant Build Script
In letzter Zeit habe ich viel mit Apache Ant Build-Skripten zu tun. Bei richtiger Konfigurationen bringt Apache Ant einen erheblichen Vorteil bei der Erstellung von Java-Projekten, unabhängig von Betriebssystem und IDE. Um Anfängern den Einstieg in Ant zu erleichtern, habe ich eine Vorlage für eine build.xml mitsamt build.properties erstellt, die beliebig erweitert werden kann.
In NetBeans kann man mit einem Java Free-Form Project das eigene Build-Skript benutzen.
Beispiel für Apache Ant Build Script weiterlesen