2010-08-20 4 views
8

Tôi cố gắng để biên dịch một dự án maven, mã nguồn sử dụng Generics và featuers khác của Java 1.5, gây build của tôi thất bạiLàm cách nào để buộc maven đóng gói dự án của tôi lên 1,5?

Trong POM.xml của tôi, tôi đã cấu hình cấu hình build chống lại 1,5 cho nguồn và mục tiêu tính , nhưng điều này không giải quyết được vấn đề của tôi

Là số POM.xml chính xác của tôi, hay tôi thiếu gì đó?

Cảm ơn

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <name>MyClass</name> 
    <groupId>uk.co.mydomain</groupId> 
    <artifactId>MyClass</artifactId> 
    <version>1.0</version> 

    <build> 
     <finalName>MyClass</finalName> 
     <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
      <source>1.5</source> 
      <target>1.5</target> 
      <descriptors> 
       <descriptor>src/main/resources/dist.xml</descriptor> 
      </descriptors> 
      <archive> 
       <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> 
      </archive> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>sun-repo-2</id> 
      <url>http://download.java.net/maven/2/</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 
</project> 

Output khi attemtping để xây dựng

generics are not supported in -1.3 (use -source 5 or higher to enable generics) 

Trả lời

16

Bạn đã cấu hình lắp ráp-plugin với một số thông tin về nguồn/đích nhưng để cấu hình biên dịch, bạn cần cấu hình compiler-plugin theo cách chính xác.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
    <source>1.5</source> 
    <target>1.5</target> 
    </configuration> 
</plugin> 

Cập nhật: này nên được kết hợp với maven-enforcer-plugin để buộc thực sự sử dụng của JDK 1.5 thay vì chỉ sử dụng tùy chọn nguồn/Mục tiêu của javac.

24

Bạn cần phải thiết lập một số thuộc tính để biên dịch với java 1,5

<properties> 
    <!-- maven-compiler-plugin configuration --> 
    <maven.compiler.source>1.5</maven.compiler.source> 
    <maven.compiler.target>1.5</maven.compiler.target> 
</properties> 
+1

Điều này sẽ không định cấu hình plugin trình biên dịch. Nó sẽ chỉ định nghĩa một số thuộc tính. – khmarbaise

+7

Một số thuộc tính được sử dụng bởi trình biên dịch plugin: http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#source –

+0

Điều này là tốt đẹp, tôi không bao giờ nghĩ về điều đó, mặc dù nó phải rõ ràng . +1 –