maven打包(调用JDK内部API导致打包不成功时)出现com.sun.xml.internel....不存在
一、调用到JDK内部访问限制API无法打包问题
当maven项目里面有用到JDK内部的一些类或者接口而导致无法打包成功时,在pom.xml加上下面配置
解决方法:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<arg>-XDignore.symbol.file</arg>
</compilerArgs>
<fork>true</fork>
</configuration>
</plugin>
出现问题的原因:javac在编译时,并不引用 rt.jar,用的是一个特别的symbol table(lib/ct.sym),这个symbol table不包含所有的sun包的类。由于rt.jar中一些类对访问具有限制,导致不解除这些限制的话会编译不通过,报:程序包XXXXXX不存在 的错误。
-XDignore.symbol.file的作用:告诉javac编译时会引用rt.jar而不是通过symbol table。
二、打包时测试代码有错误导致无法打包
解决方法:
<!--测试代码出错时继续打包编译-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
本文来自博客园,作者:爱吃糖的橘猫,转载请注明原文链接:https://www.cnblogs.com/sglblog/p/16412108.html