Mam zarówno JDK 1.6 i 1.7 zainstalowany na moim systemie (Linux, w katalogu/opt). Dodałem katalog bin dla JDK 1.6 w mojej ścieżce, więc jest to wersja Java używana domyślnie.Jak mogę skonfigurować Mavena tak, aby domyślnie używał JDK6, ale JDK7 w razie potrzeby
Pracuję nad projektem, który wymaga JDK 1.7, a niektóre wymagają 1.6. Poprzednio ustawiłem ustawienia JDK 1.7 w środowisku Eclipse, ale chciałem przekonwertować ten projekt na Maven, aby każdy mógł skorzystać z preferowanego edytora.
Czy możliwe jest określenie położenia 1,7 na instalacji/konfiguracji Mavena (a nie w pliku POM), tak aby domyślnie korzystał z wersji 1.6, a 1.7 przy określaniu projektu wymaga tego w POM? O ile mi wiadomo, wszyscy pracujący nad projektem powinni mieć tę samą zawartość w swoich plikach POM, więc niechętnie ustalam lokalizację katalogu Java 7 (ponieważ będzie on inny na komputerach wszystkich).
$ 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"
dodanie poniższych informacji:
<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>
skutkuje:
[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]
To wygląda droga ; przypuszczalnie 'settings.xml' powinien być trzymany poza VCS (ustawionym jako osobne pobranie)? – ataulm
Z całą pewnością powinien być przechowywany poza VCS, ponieważ może zawierać określone ustawienia lokalne. Możesz sprawdzić szablon, jeśli chcesz z łatwością przesłać niektóre wartości domyślne, ale każdy użytkownik będzie musiał dostosować go do swoich potrzeb. –
Ah, nawet ustawienie zmiennej środowiskowej jest wystarczające, wygląda - aby uniknąć pliku ustawień (ale wymaga od każdego programisty ustawienia tej zmiennej) – ataulm