Ich habe sowohl JDK 1.6 als auch 1.7 auf meinem System installiert (Linux, im Verzeichnis/opt). Ich habe das Verzeichnis bin für JDK 1.6 in meinem Pfad hinzugefügt, das ist die Version von Java, die standardmäßig verwendet wird.Wie kann ich Maven so konfigurieren, dass JDK6 standardmäßig verwendet wird, aber JDK7 nach Bedarf?
Ich arbeite an einem Projekt, das JDK 1.7 erfordert und einige, die 1.6 erfordern. Zuvor hatte ich JDK 1.7-Einstellungen in Eclipse festgelegt, aber ich wollte dieses Projekt in Maven konvertieren, damit jeder seinen bevorzugten Editor verwenden konnte.
Ist es möglich, den 1.7-Standort in einer Maven-Installation/Konfiguration (und nicht in der POM-Datei) so anzugeben, dass er standardmäßig 1.6 verwendet und 1.7 bei der Angabe des Projekts im POM benötigt? Soweit mir bekannt ist, sollte jeder, der an einem Projekt arbeitet, den gleichen Inhalt in seinen POM-Dateien haben. Daher möchte ich den Speicherort des Java 7-Verzeichnisses hier nicht festlegen (da es auf allen Rechnern anders sein wird).
$ mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 13:51:28+0000)
Maven home: /opt/apache-maven-3.0.5
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /opt/jdk1.6.0_45/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-27-generic", arch: "amd64", family: "unix"
Hinzufügen die folgenden:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<outputDirectory>${project.build.outputDirectory}/resources</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
Ergebnisse in:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project golemlite: Fatal error compiling: invalid target release: 1.7 -> [Help 1]
Das sieht den Weg zu gehen ; vermutlich sollte 'settings.xml' aus dem VCS herausgehalten werden (als separater Download eingestellt)? – ataulm
Es sollte auf jeden Fall außerhalb von VCS gehalten werden, da es bestimmte lokale Einstellungen enthalten könnte. Sie könnten eine Vorlage einchecken, wenn Sie einige Standardwerte leicht anpassen möchten, aber jeder Benutzer muss sie an seine Bedürfnisse anpassen. –
Ah, sogar Einstellung einer Umgebungsvariable ist genug es sieht aus - um eine Einstellungsdatei zu vermeiden (aber jeder Entwickler diese Variable setzen muss) – ataulm