2013-10-21 19 views
5

Tôi gặp một Maven-Dự án đó được cấu hình sử dụng các thuộc tính sau:Maven mã nguồn dự án không hoạt động

<properties> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
</properties> 

Trên máy tính của tất cả mọi thứ của tôi hoạt động tốt với các thiết lập này. Tuy nhiên, trên máy khác, khi tôi kiểm tra xem nó ra ngoài và cố gắng xây dựng nó bằng cách sử mvn install các lỗi biên dịch unmappable character for encoding ASCII:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project scuttle: Compilation failure: Compilation failure: 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,39] error: unmappable character for encoding ASCII 
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,40] error: unmappable character for encoding ASCII 
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,30] error: unmappable character for encoding ASCII 
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,31] error: unmappable character for encoding ASCII 

Tôi đã cố gắng chạy mvn với -Dfile.encoding=UTF-8 nhưng điều đó không giúp đỡ. $LC_CTYPE báo cáo UTF-8.

Tôi có thể làm gì?

Bạn có thể xem tập tin pom đầy đủ ở đây: https://github.com/scravy/scuttle/blob/master/pom.xml

+0

Bạn có chắc chắn 100% rằng các nguồn của bạn được mã hóa UTF-8 không? Có thể, họ không, nhưng nó hoạt động trong môi trường của bạn vì một số lý do (có thể IDE của bạn can thiệp) – sola

+3

Vui lòng cập nhật nguyên nhân phiên bản maven-compiler-phiên bản 2.0.2 của bạn thực sự cũ. Hiện tại chúng tôi có 3.1 .. – khmarbaise

+0

Có vấn đề tương tự với trình cắm trình biên dịch maven mặc định v2.0.2. Tăng phiên bản giải quyết vấn đề. – gavenkoa

Trả lời

9

Cuối cùng bình luận bằng khmarbaise giúp tôi tìm thấy một giải pháp:

tôi cấu hình trình biên dịch cắm và quy định bảng mã nguồn có, bây giờ mọi thứ hoạt động ở khắp mọi nơi:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
     <encoding>UTF-8</encoding> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+1

Tuyệt vời vì bạn đã tự tìm ra giải pháp cho vấn đề của mình! –

2

Bạn có tất cả các thiết lập ngay trong pom của bạn, vì vậy đó là tốt. Xác minh IDE của bạn (và những người khác được nhóm của bạn sử dụng nếu có) được định cấu hình cho UTF-8.

Tiếp theo, xóa kho lưu trữ .m2 cục bộ của bạn và chạy lại công trình của bạn. Nó có thể là một trong những phụ thuộc transitive của bạn đã không được biên dịch với mã hóa bên phải. Nhưng bạn có thể có phiên bản "đúng" trong số .m2 của bạn, làm cho mọi thứ OK khi phiên bản tương tự không tồn tại trên máy khác.

Chúc may mắn! Tôi biết làm thế nào gây phiền nhiễu công cụ này có thể được.

1

Thay vì đặt maven opts , đặt biến môi trường mới - JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8

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