maven打包时添加外部jar同maven中的jar包一起添加到编译后的文件当中
在开发项目时,有些 jar 包是非 maven 仓库提供的第三方 jar 包,比如七牛的 sdk,阿里的 sdk 等等。在项目开发时,有以下两个方案来引入、打包。
以alipay-sdk-java-3.0.0.jar这个 jar 包为例
方案一 安装本地jar包到本地仓库
1. 本地安装
在alipay-sdk-java-3.0.0.jar
文件目录下执行命令,安装此 jar 包到本地 maven 仓库中
mvn install:install-file -Dfile=alipay-sdk-java-3.0.0.jar -DgroupId=com.aliyun -DartifactId=alipay-sdk-java -Dversion=3.0.0 -Dpackaging=jar
2.普通方式导入jar包
在本地安装第三方 jar 后在项目 pom 文件中就可以像添加 maven 的 jar 包依赖一样
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.0.0</version>
</dependency>
这个方案有个缺点,就是其他开发人员也必须在自己的电脑上执行步骤1的安装命令,安装 jar 包到自己本地仓库。
方案二 在项目 pom 中配置
1.在项目根目录创建libs文件夹将使用的jar包放入其中
2.jar包以scope为system
的方式导入pom文件
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alipay-sdk-java-3.0.0</artifactId>
<version>3.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/alipay-sdk-java-3.0.0.jar</systemPath>
</dependency>
3.打包
3.1 打成 war包 添加maven-war-plugin插件配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/libs</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
3.2 打成 jar包
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
以上两个方案选择一个,就可以愉快地开发项目了。
后面使用 maven 命令打包时也可以将alipay-sdk-java-3.0.0.jar
打包到最终的包中啦。
mvn clean package -Dmaven.test.skip=true