maven发布jar包运行时找不到类问题

我们有个公共类库,编译成jar包,供其他项目调用。

然鹅,有一个项目也编译成一个jar包,以命令行的方式运行,结果提示找不到这个公共类库。

打开项目jar包,里面是有公共类库jar包的。只不过,它没有跟一般的jar包放在一起,比如放在

BOOT-INF\lib

而是放在了

BOOT-INF\classes\libs

估计就是这个原因,运行时找不到了。为什么放在这里,就找不到呢?不知道。我目前还不知道原因。但是,开发阶段,在idea里运行就好好的。看来还是打包的问题。

为啥公共类库包会放在BOOT-INF\classes\libs呢?原因是依赖的方式是这样写的:

<dependency>
	<groupId>com.monkey</groupId>
	<artifactId>lt-framework</artifactId>
	<version>1.0.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/src/main/resources/libs/lt-framework-1.0.0.jar</systemPath>
</dependency>

在这里插入图片描述
这样做的好处是,多人开发的情况下,这个依赖包的版本是一致的。当然,将包发布到内部仓库也可以,但我们没搞这个东东。总之吧,用了上面说的,在本地文件夹寻找包的依赖方式,毛病出来了,怎么办?

其实就是在pom.xml的build里声明一下:

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
                <includeSystemScope>true</includeSystemScope>
			</configuration>
		</plugin>
	</plugins>
</build>

这样子发布以后,公共包也会拷贝一份到BOOT-INF\libBOOT-INF\classes\libs还是有,浪费,不知怎么设置去掉),运行正常。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值