我正在更新我正在處理的項目的POM中不同的依賴項和插件的版本。其中一個更新是將maven-compiler-plugin從版本2.3.2升級到3.1。做完這些之後,項目中的一些組件現在不再成功構建。給出的唯一的錯誤是這樣的:maven-compiler-plugin參數字符串超過OS X終端限制
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project project-name: Compilation failure -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project project-name: Compilation failure
運行時使用-X開關行家,我們也看到,在日誌的文字一塊巨大的。我們成功設法通過javac運行這段文本,發現問題基本上歸結爲參數字符串(即命令行選項)太長,無法在OS X中處理Bash。
-bash: /usr/bin/javac: Argument list too long
我試圖逐漸增加版本號以及問題在maven-compiler-plugin版本3.0開始。
這是插件如何在POM的輸入:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<verbose>true</verbose>
<encoding>UTF-8</encoding>
<source>1.6</source>
<target>1.6</target>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
有一個在命令行選項顯然超過350K的字符,其中OS X終端只是無法處理。 OS X的ARG_MAX是32 kb,而Linux Ubuntu似乎支持256 kb。 Linux Ubuntu用新版本編譯程序並不困難,所以對我來說基本上證實了我們的懷疑。因此
我的問題可以歸結爲兩點:
1),我們可以得到的Maven給我們一個正確的錯誤消息,而不是需要手動通過javac的運行文本的這個巨大的塊? (任何其他錯誤都應視爲錯誤並顯示在適當的錯誤消息中)。我們嘗試了一些設置,但沒有運氣。
2)是否有修復既可以在)從產生這種規模的參數字符串(東西顯然從2.3.2版本發生停止Maven的。到3.1),或b)增加對OS X的MAX_ARG?
https://jira.codehaus.org/browse/MCOMPILER可能更適合bug報告 – 2013-07-26 11:04:52