欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven配置加载lib下的jar包以及移除传递jar

程序员文章站 2022-07-14 08:54:46
...

一:maven既加载maven库中的jar包,又要加载本地WEB-INF/lib下的jar包

1:eclipse方式

项目用到maven编译,本地开发的时候jar包都是放在WEB-INF/lib目录下,通过BuildPath将jar包导入,然后用MyEclipse中的:maven package命令打成war包,这个war包在tomcat下能正常运行,war包下是有lib下的jar包的。

2:idea方式

通过IDEA自带的运行能够正常识别lib包下的jar,但是我要是通过maven profile实现多环境配置自动分离 则会出现“程序包xxx不存在的”错误

若该程序包是jdk自带的程序包,
请参照:解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在

https://blog.csdn.net/mn960mn/article/details/51253038

解决方法如下:
添加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>

程序包是第三方的jar,解决方案是让maven既加载maven库中的jar包,又要加载本地WEB-INF/lib下的jar包。

现在终于解决问题了,方法是在pom.xml文件中添加一段配置:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>

二:maven剔除多余的jar配置

Maven移除传递依赖
maven配置加载lib下的jar包以及移除传递jar

<dependency>
	<groupId>org.apache.hbase</groupId>
	<artifactId>hbase</artifactId>
	<version>0.94.17</version>
	<exclusions>
		<exclusion>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
		</exclusion>
	</exclusions>
</dependency>

1:操作eclipse
pom.xml–Dependency Hierarchy,选择你的项目,点击确定就能排除~
maven配置加载lib下的jar包以及移除传递jar
idea操作
maven配置加载lib下的jar包以及移除传递jar

https://my.oschina.net/u/3463015/blog/905299

相关标签: maven