解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在

当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderImpl)等的时候,用maven编译一般会出现如下错误

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.105 s
[INFO] Finished at: 2016-04-26T18:45:49+08:00
[INFO] Final Memory: 13M/155M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project test: Compilation failure
[ERROR] /E:/ide/code/src9/test/src/main/java/com/test/osgi/test/App.java:[7,36] 程序包com.sun.xml.internal.ws.spi不存在
[ERROR] -> [Help 1]
[ERROR]

解决方法如下:

添加maven-compiler-plugin插件,并且配置compilerArguments

如:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.8</source>
		<target>1.8</target>
		<compilerArguments>
			<bootclasspath>${JAVA_HOME}/jre/lib/rt.jar</bootclasspath>
		</compilerArguments>
	</configuration>
</plugin>

注意:

1:这里的rt.jar需要配置正确的路径

2:如果使用的类,接口等在其他的jar里面(如tools.jar),则bootclasspath值需要配置成其他的jar

配置好之后,再编译打包,就没有问题了

时间: 2024-10-13 11:53:56

解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在的相关文章

java编译错误 程序包javax.servlet不存在javax.servlet.*

java编译错误 程序包javax.servlet不存在javax.servlet.* 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax.servlet.http 不存在 等错误 由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存在”错误的方法: 1. 搜索servlet-api.jar

maven 错误: 程序包org.junit不存在

该错误在入门例子中使用mvn clean test时出现该错误. 原因: 测试用例应该放在src/test/java/...路径下,我是放在了src/main/java/..路径下了. 因为没有遵守其规则,才出现了该问题. maven 错误: 程序包org.junit不存在,码迷,mamicode.com

解决Maven关于本地jar包的打包处理

在使用maven进行jar包管理时,通过我们都是通过maven去下载一些jar包,但有些jar在maven上没有,所以就就可能在本地直接手动加入一些需要用到的外部jar包.但如果我们用maven package打包就会发现,本地的那些jar是不能被maven识别的,所以就需要解决Maven关于本地jar包的打包处理的问题. 还好maven中有提供这样的配置,在pom文件中通过配置附加指定本地jar的路径即可完成maven打包功能. <build> <plugins> <plu

源码编译安装程序包及httpd源码安装实践

源码编译安装程序包从步骤并不复杂,实际安装过程中最主要的就是准备好编译环境:根据自己的实际需求,选择或设置程序包编译参数:以及程序包安装后的相关配置. 1.  编译环境准备 以CentOS6为例,一般通过yum安装2个包组,编译工具,以及编译程序包依赖的主要的头文件和库文件就都准备好了. # yum groupinstall "Development Tools" # yum groupinstall "Server Platform Development" 另外

MAVEN编译错误解决:maven only whitespace content allowed before start

下载下来的代码,发现不能编译,错误截图如下: 找了各种方法后仍不能解决,编译其他的项目,同事编译这个项目,都是很正常的. 许久,终于找到解决方案: 删除架包下面的项目pom信息 具体路径在存放从库里下载下来的jar包文件夹中,删掉后,即可重新编译打包

(转) Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

场景:在导入Maven项目时候遇到如下错误. 1 问题描述及解决 Eclipse Maven 开发一个 jee 项目时,编译时遇到以下错误:Description Resource Path Location TypeDynamic Web Module 3.1 requires Java 1.7 or newer. bdp line 1 Maven Java EE Configuration Problem Description Resource Path Location TypeOne

编译ros程序包--4

编译程序包(原创博文,转载请标明出处--周学伟) 1.编译程序包: 一旦安装了所需的系统依赖项,我们就可以开始编译刚才创建的程序包了. 注意: 如果你是通过apt或者其它软件包管理工具来安装ROS的,那么系统已经默认安装好所有依赖项. 记得事先source你的环境配置(setup)文件,在Ubuntu中的操作指令如下: [email protected]: source /opt/ros/indigo/setup.bash 2.使用使用 catkin_make catkin_make 是一个命令

菜鸟调错(八)—— Maven编译错误:不兼容的类型的解决方案

泛型在实际的工作中应用非常广泛,关于泛型就不在这里赘述了,感兴趣请戳<重新认识泛型>.项目中用到了如下的泛型: public <T> T query(String sql, ResultSetHandler<T> rsh) throws SQLException { return this.query(sql, rsh, (Object[]) null); } 以上代码在Eclipse中可以编译通过并成功运行,但是当你使用Maven编译的时候就会报错,错误信息如下: x

maven 程序包com.sun.image.codec.jpeg

在 Pom.xml 增加 <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> <compilerArguments> <verbose /> <bootclasspath>/Library/Jav