2011-01-21 13 views
8

Używam Eclipse jako IDE i Maven poza nim, aby wszystkie zależności były aktualne i aktualizować projekt Eclipse jako taki. W środowisku Eclipse zwykle określam bibliotekę systemową JRE jako środowisko wykonawcze dla dowolnego projektu Java, zwykle "JavaSE-1.6".Eclipse + Maven: wymuszenie środowiska wykonawczego "JavaSE-1.6" zamiast poprawionego JDK

W pom.xml używam następujące wiersze:

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.8</version> 
      <configuration> 
       <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate> 
       <downloadJavadocs>true</downloadJavadocs> 
       <wtpversion>2.0</wtpversion> 
      </configuration> 
     </plugin> 

Wydaje pozwolić Maven wybrać pasujący JDK 1.6. Przypisuje swoje biblioteki systemowe do ścieżki klasy projektu. Jednak używa raczej jdk1.6.20 bezpośrednio niż JavaSE-1.6.

Czy istnieje sposób, aby zmusić Mavena do używania JavaSE-1.6?


EDIT: Oto plik wsadowy, który używam do uruchomienia Maven:

SET JAVA_HOME=C:\Programme\java\jdk1.6.0_20 
SET MAVEN_HOME=C:\Programme\apache-maven-2.2.1 
SET MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m 
SET PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH% 

SET EXTRA_MVN_OPTS=-Dmaven.test.skip=true 

CD /D "%~dp0" 
cmd /c mvn %EXTRA_MVN_OPTS% eclipse:clean eclipse:eclipse 
cmd /c mvn %EXTRA_MVN_OPTS% clean install 
+0

Dodałem plik wsadowy dla Maven i pom.xml-linie do 'maven-eclipse-plugin' – sjngm

Odpowiedz

10

Możesz to zrobić, ustawiając pojemnik typu ścieżka klas.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.8</version> 
    <configuration> 
     <classpathContainers> 
      <classpathContainer> 
    org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6 
      </classpathContainer> 
     </classpathContainers> 
    </configuration> 
</plugin> 

referencyjny:

+0

Brzmi obiecująco! Dam ci znać, jeśli zadziała. – sjngm

+1

Wiem, że tak, dawna firma z mojej firmy używała tego od lat. Problem polega jednak na tym, że właściwość jest oznaczona jako wewnętrzna, a zatem podlega zmianie –

+0

Tak, działa. Jeśli przestanie działać, otworzę kolejne pytanie;) - Przepraszam za opóźnienie, ale byłem chory. – sjngm

2

Przejdź do Okno> Preferencje> Jawa> Zainstalowane JRE> środowisk wykonawczych

Wybierz JavaSE-1.6, kliknij pole wyboru po prawej, które powinno wskazywać "idealnie pasuje"

następnie użyj "zaktualizuj konfigurację projektu" z menu podręcznego.

+0

już robi. Poza tym nie wolno mi korzystać z menu Maven, ponieważ od czasu do czasu niszczy ustawienia projektu. – sjngm

+0

Którą wersję rozszerzenia maven używasz? Nowsze wersje były BARDZO dobre. Jeśli przenosisz pliki .project i .classpath do kontroli wersji, prawdopodobnie nie jest to dobry pomysł, ponieważ eclipse + maven może aktualizować/rekonfigurować te oparte na zależnościach i wtyczkach. –

+0

Właśnie widziałem twoją edycję i patrzyłem na rekomendację @Sean Patric Floyd. –

0

Ponieważ używasz maven i eclipse, być może należy użyć M2Eclipse wtyczki. Projekt Maven (zbudowany przez Maven ustawiając JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23) przywożonych w Eclipse, pojawia się z JRE System Library jak JavaSE-1.6

+0

Byłoby miło wiedzieć, dlaczego na ogół wolisz M2Eclipse, oprócz "działa dla mnie" na to pytanie. –

Powiązane problemy