2011-01-21 32 views
8

Tôi đang sử dụng Eclipse như IDE và Maven bên ngoài để giữ cho tất cả các phụ thuộc được cập nhật và cập nhật dự án Eclipse như vậy. Trong Eclipse, tôi thường chỉ định thư viện hệ thống JRE như một môi trường thực thi cho bất kỳ dự án Java nào, thường là "JavaSE-1.6".Eclipse + Maven: thực thi Môi trường thực thi "JavaSE-1.6" thay vì cố định JDK

Trong pom.xml tôi sử dụng các dòng sau:

 <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> 

này dường như để cho Maven chọn một JDK phù hợp 1.6. Nó gán các thư viện hệ thống của nó cho classpath của dự án. Tuy nhiên, nó sử dụng jdk1.6.20 trực tiếp hơn là JavaSE-1.6.

Có cách nào để làm cho Maven sử dụng JavaSE-1.6 thay thế không?


EDIT: Dưới đây là các tập tin thực thi mà tôi sử dụng để chạy 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

Tôi được thêm vào tập tin thực thi cho Maven và pom.xml-dòng cho môi trường 'maven-eclipse-plugin' – sjngm

Trả lời

10

Bạn có thể làm điều đó bằng cách đặt vùng chứa đường dẫn lớp.

<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> 

tham khảo:

+0

Điều này nghe có vẻ đầy hứa hẹn! Tôi sẽ cho bạn biết nếu nó hoạt động. – sjngm

+1

Tôi biết điều đó, một công ty khách hàng cũ của tôi đã sử dụng nó trong nhiều năm. Tuy nhiên, vấn đề là tài sản được đánh dấu là nội bộ và do đó có thể thay đổi –

+0

Yep, nó hoạt động. Nếu nó ngừng hoạt động, tôi sẽ mở một câu hỏi khác;) _Xin lỗi về sự chậm trễ, nhưng tôi đã bị ốm_ – sjngm

2

Đi vào Window> Preferences> JRE Java> Cài đặt> Môi trường Thực hiện

Chọn JavaSE-1.6, nhấp vào hộp kiểm ở bên phải sẽ cho biết "kết hợp hoàn hảo"

sau đó sử dụng "cập nhật cấu hình dự án" từ menu maven.

+0

Nó đã làm. Khác hơn là tôi không được phép sử dụng menu Maven vì nó đôi khi phá hủy các thiết lập dự án. – sjngm

+0

Bạn đang sử dụng phiên bản nào của tiện ích mở rộng maven? Các phiên bản gần đây đã được VERY tốt về điều đó. Nếu bạn đang commit các file .project & .classpath để điều khiển phiên bản, có lẽ không phải là một ý tưởng hay vì eclipse + maven có thể cập nhật/cấu hình lại những cái dựa trên các phụ thuộc và các plugin. –

+0

Tôi vừa xem bản chỉnh sửa của bạn và tôi sẽ xem xét đề xuất của @Sean Patric Floyd. –

0

Vì bạn đang sử dụng maveneclipse, có lẽ bạn nên sử dụng M2Eclipse plugin. Dự án maven (được xây dựng bởi maven bằng cách thiết lập JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23) nhập khẩu trong Eclipse, xuất hiện với JRE System Library như JavaSE-1.6

+0

Sẽ rất hay khi biết tại sao bạn thường thích M2Eclipse hơn, ngoài" nó hoạt động cho tôi "cho câu hỏi này. –

Các vấn đề liên quan