maven build An unknown compilation problem occurred

项目在开发环境下使用maven clean package 是成功的,

在jenkins下进行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

但是这些异常日志其实是没有太大用处的。

还好,我继续往上面翻日志的时候,发现了一个宝藏,正式这个宝藏帮助我找到了解决的办法

Fatal Error: Unable to find package java.lang in classpath or bootclasspath

然后可以看到pom.xml中定义了

<compilerArgs>

    <arg>

        ${JAVA_HOME}/jre/lib/rt.jar;${JAVA_HOME}/jre/lib/jce.jar

    </arg>

</compilerArgs>

里面的;在windows下面是没有问题的,但是在linux下面是有问题的,

请参考:

http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html

中的
<pathSeparator>

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},问题解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一个非常常用的Java项目构建工具,它可以帮助我们管理项目的依赖、自动下载所需的库以及进行项目的编译、测试和打包等操作。 当我们在使用Maven编译项目时,有时会遇到一些未知的编译问题。这可能是由于多种原因造成的,例如项目配置不正确、依赖库版本冲突、编码问题等。 为了解决这个问题,我们可以采取以下几个步骤: 第一步,检查项目配置。我们需要确认项目的pom.xml文件是否正确配置了所需的依赖库,以及是否指定了正确的Java编译版本等。 第二步,检查依赖库。有时不同的依赖库版本之间会存在冲突,导致编译出现问题。我们可以尝试更新或降低依赖库的版本,以解决冲突。 第三步,检查编码问题。如果项目中存在编码不一致的情况,也有可能导致编译问题。我们可以检查项目中的源代码文件、配置文件等,确保它们使用的编码方式一致。 第四步,查找详细的错误信息。当编译出现问题时,Maven通常会提供详细的错误信息,我们可以根据这些信息来定位和解决问题。可以查看Maven的日志输出、IDE的控制台输出等来获取这些信息。 最后,如果以上步骤都没有解决问题,我们可以尝试在搜索引擎中搜索特定的错误信息,看看是否有其他人遇到类似的问题,并找到解决方法。 总而言之,遇到Maven编译问题时,我们应该首先检查项目配置、依赖库和编码等方面的问题,并查找详细的错误信息。通过以上方法,我们应该能够解决大部分的编译问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值