Spring Boot引用本地jar包

最近在做一个项目,需要引入第三方支付包,需要引用本地jar包。这种情况有两种方案可以采用:

       一,搭建一个本地maven源,仍然通过maven管理。这种方法的缺点是,一旦工程需要多人维护,每人都需要搭一个本地源,比较麻烦,除非公司有公用的内部maven源,否则这种方案反而增加工作量。

       二,以外部jar方式导入本地jar包,然后配置maven的打包参数。这个方式比较灵活,jar包跟着工程走,在工程不大的情况下比较容易管理。但是网上找了很多pom.xml的配置,几乎就看不到一个对的,自己花了个把小时研究终于试出一种对的,贴出来供大家参考。

       首先在工程下建一个lib目录,把本地jar拷进去。

       然后把这些包添加进工程,我用的idea,是在Project Settings -- Libraries里操作,很简单就不贴图了。

       接下去修改pom.xml的<build>段,如果没有,放在和<dependencies>平级,另外这里的路径是我这个目录结构才用的路径,如果lib位置和我不一样需要自主修改:
 

<build>
 
		<plugins>
 
			<plugin>
 
				<groupId>org.springframework.boot</groupId>
 
				<artifactId>spring-boot-maven-plugin</artifactId>
 
				<configuration>
 
					<mainClass>com.example.TransferApplication</mainClass>
 
				</configuration>
 
				<executions>
 
					<execution>
 
						<goals>
 
							<goal>repackage</goal>
 
						</goals>
 
					</execution>
 
				</executions>
 
			</plugin>
 
			<plugin>
 
				<artifactId>maven-compiler-plugin</artifactId>
 
				<configuration>
 
					<source>1.8</source>
 
					<target>1.8</target>
 
					<encoding>UTF-8</encoding>
 
					<compilerArguments>
 
						<extdirs>${project.basedir}/lib</extdirs>
 
					</compilerArguments>
 
				</configuration>
 
			</plugin>
 
		</plugins>
		<resources>
 
			<resource>
 
				<directory>lib</directory>
 
				<targetPath>BOOT-INF/lib/</targetPath>
 
				<includes>
 
					<include>**/*.jar</include>
 
				</includes>
 
			</resource>
			<resource>
 
				<directory>src/main/resources</directory>
 
				<targetPath>BOOT-INF/classes/</targetPath>
 
			</resource>
 
		</resources>
 
	</build>

 

上述参考的是:https://blog.csdn.net/mayp1/article/details/53996402

但是实际上引入的时候会有一些问题,mvn打包正常通过,但是启动的时候,会报Could not resolve placeholder异常。

 

导致这个异常的原因可能是读取属性文件重复读取,就会获取不了,去掉Resource这里面的部分,正常编译和运行。

最终修改如下:

<build>
 
		<plugins>
 
			<plugin>
 
				<groupId>org.springframework.boot</groupId>
 
				<artifactId>spring-boot-maven-plugin</artifactId>
 
				<configuration>
 
					<mainClass>com.example.TransferApplication</mainClass>
 
				</configuration>
 
				<executions>
 
					<execution>
 
						<goals>
 
							<goal>repackage</goal>
 
						</goals>
 
					</execution>
 
				</executions>
 
			</plugin>
 
			<plugin>
 
				<artifactId>maven-compiler-plugin</artifactId>
 
				<configuration>
 
					<source>1.8</source>
 
					<target>1.8</target>
 
					<encoding>UTF-8</encoding>
 
					<compilerArguments>
 
						<extdirs>${project.basedir}/lib</extdirs>
 
					</compilerArguments>
 
				</configuration>
 
			</plugin>
 
		</plugins>
		
 
	</build>

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值