2012-09-16 24 views
37

Trong NetBeans 7.2, tôi gặp sự cố khi tìm cách biên dịch bằng -Xlint: không được chọn trong dự án Maven. Theo một dự án Ant, bạn có thể thay đổi cờ trình biên dịch bằng cách vào Project Properties -> Compiling, nhưng các dự án Maven dường như không có bất kỳ tùy chọn nào như vậy.Cách biên dịch bằng -Xlint: không được chọn trong dự án Maven?

Có cách nào để định cấu hình IDE để biên dịch với các cờ như vậy bằng Maven không?

+0

Nếu bạn cần phải vượt qua nhiều đối số, bạn có thể nhận được một lỗi với '< compilerArgument> '. Xem câu trả lời này cho thay thế ' ... ': https://stackoverflow.com/a/23743186/257299 – kevinarpe

Trả lời

57

Tôi đoán bạn có thể đặt đối số trình biên dịch trong tệp pom.xml của mình. Vui lòng tham khảo này http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.html

<compilerArgument>-Xlint:unchecked</compilerArgument> 
+0

Tôi đã tạo ra một chương trình thử nghiệm nhỏ nên tạo ra một cảnh báo về việc sử dụng phương pháp tĩnh, nhưng tôi không thể có vẻ để có được maven để tạo ra bất kỳ cảnh báo về nó. Gist với chương trình mẫu và tệp pom được đăng tại đây -> https://gist.github.com/influenza/5145598 –

+0

@RonDahlgren: tại sao bạn mong đợi điều này để ném cảnh báo? – haylem

+0

@haylem - Việc truy cập một trường hoặc phương thức tĩnh sẽ tạo ra một cảnh báo khi được kích hoạt. Đây là một chi tiết của javac đang được sử dụng, nhưng nó phổ biến: http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler % 2Fref-preferences-errors-warnings.htm và http://pic.dhe.ibm.com/infocenter/dstudio/v3r1/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences% 2Fjava% 2Fcompiler% 2Fref-preferences-errors-warnings.htm –

21

Tôi muốn xây dựng câu trả lời của @ Nishant. Thẻ compilerArgument cần phải đi vào bên trong plugin/configuration thẻ. Dưới đây là ví dụ đầy đủ:

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <testSource>1.8</testSource> 
     <testTarget>1.8</testTarget> 
     <compilerArgument>-Xlint:unchecked</compilerArgument> 
    </configuration> 
    </plugin> 
</plugins> 
0

Thông tin tệp pom được bật. Tôi đã có thêm thử thách để xây dựng dự án Maven của người khác trong Jenkins và không có quyền truy cập vào kho lưu trữ tệp pom.

tôi đã tạo một bước trước khi xây dựng để chèn các tham số trình biên dịch vào các tập tin pom sau khi tải nó từ git, ví dụ

sed -i 's|/target> *$|/target>\n<compilerArgument>\n-Xlint:deprecation\n</compilerArgument>|' $WORKSPACE/pom.xml 
Các vấn đề liên quan