項(xiàng)目在開發(fā)環(huán)境下使用maven clean package 是成功的遗增,
在jenkins下進(jìn)行build就是失敗的叫惊。
其中主要的失敗日志就是:
Error org.apache.maven.cli.MavenCli - Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project china-great: Compilation failure
Error?org.apache.maven.cli.MavenCli - An unknown compilation problem occurred
Error?org.apache.maven.cli.MavenCli - -> [Help 1]
Error?org.apache.maven.cli.MavenCli -?
Error?org.apache.maven.cli.MavenCli - To see the full stack trace of the errors, re-run Maven with the -e switch.
Error?org.apache.maven.cli.MavenCli - Re-run Maven using the -X switch to enable full debug logging.
Error?org.apache.maven.cli.MavenCli -?
Error?org.apache.maven.cli.MavenCli -? For more information about the errors and possible solutions, please read the following articles:
Error?org.apache.maven.cli.MavenCli -? [Help 1]?http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
但是這些異常日志其實(shí)是沒有太大用處的。
還好做修,我繼續(xù)往上面翻日志的時候霍狰,發(fā)現(xiàn)了一個寶藏,正式這個寶藏幫助我找到了解決的辦法
Fatal Error: Unable to find package java.lang in classpath or bootclasspath
然后可以看到pom.xml中定義了
<compilerArgs>
? ? <arg>
? ? ? ? ${env.JAVA_HOME}/jre/lib/rt.jar;${env.JAVA_HOME}/jre/lib/jce.jar
? ? </arg>
</compilerArgs>
里面的;在windows下面是沒有問題的饰及,但是在linux下面是有問題的蔗坯,
請參考:
http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html
Override the char used between path folders. The system-dependent path-separator character. This field is initialized to contain the first character of the value of the system property path.separator. This character is used to separate filenames in a sequence of files given as a path list. On UNIX systems, this character is ':'; on Microsoft Windows systems it is ';'.
User property is:?mdep.pathSeparator.
好的,那我們就將;修改為${path.separator}燎含,問題解決宾濒。