Tôi muốn làm cho xây dựng Maven của tôi không thành công khi tôi quên khai báo serialVersionUID trong lớp Serializable
. Với javac
, đó là dễ dàng:Làm cách nào để chuyển javac nhiều đối số dòng lệnh, một số trong đó bao gồm dấu hai chấm, mà không phá vỡ plugin phát hành Maven?
$ javac -Xlint:serial -Werror Source.java
trực tiếp dịch đó để Maven không hoạt động:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<compilerArgument>-Xlint:serial -Werror</compilerArgument>
</configuration>
</plugin>
Các compilerArgument
được trích dẫn, vì vậy javac
chỉ nhận một đối số, chứa -Xlint:serial -Werror
, thay vì -Xlint:serial
và -Werror
như các đối số riêng biệt. Vì vậy, bạn đọc các tài liệu, và tìm compilerArguments
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<compilerArguments>
<Xlint:serial />
<Werror />
</compilerArguments>
</configuration>
</plugin>
này trông lạ - đại tràng làm cho serial
yếu tố trong không gian tên Xlint
, mà không được khai báo bất cứ nơi nào - nhưng nó hoạt động ... cho đến khi bạn muốn làm một phát hành:
$ mvn release:prepare
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project my-project: Error reading POM: Error on line 58: The prefix "Xlint" for element "Xlint:serial" is not bound.
Rõ ràng, đầu đọc POM thông thường xử lý các không gian tên XML theo một cách khác so với cái được sử dụng bởi plugin phát hành.
Vậy làm cách nào để vượt qua javac
nhiều thiết bị chuyển mạch dòng lệnh khi một số thiết bị chuyển mạch có chứa các ký tự không hợp lệ cho các phần tử XML đơn giản mà không phá vỡ plugin phát hành?
không làm việc cho maven-biên dịch-Plugin 2.4 – yegor256
Thật thú vị. Nó là một lỗi hoặc một thay đổi dự định trong hành vi? – gustafc
xem [MCOMPILER-62] (http://jira.codehaus.org/browse/MCOMPILER-62) – yegor256