Maven打包并入本地jar包

方法一

(pom文件指定jar包目录进行引入)

1.将需要手动引入的包放在项目目录下,如lib目录下;

修改pom文件,引入依赖并且将scope设置为system

2. 配置maven打包插件

 

这个方法是根据,采用官方demo中采用的spring-boot-maven-plugin在打包时将本地依赖jar包引入JAR包。但是该项目是打包war,后面出现了点问题。

虽然依赖也能打出来,但是打在WEB-INF/lib-provided文件夹而不是WEB-INF/lib文件夹中,导致TOMCAT部署的时候找不到JAR包中的引用类。

解决

采用如下插件,编译阶段将scope为system的jar包打入war包中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.10</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>compile</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
                <includeScope>system</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>

方法二

(将jar包安装至本地仓库后使用pom文件直接引入)

mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar

eg.:mvn install:install-file  -Dfile=/root/.m2/yunst-sdk-0.0.1-SNAPSHOT.jar -DgroupId=com.allinpay -DartifactId=yunst-sdk -Dversion=0.0.1 -Dpackaging=jar

pom引入:

 <dependency>
            <groupId>com.allinpay</groupId>
            <artifactId>yunst-sdk</artifactId>
            <version>0.0.1</version>
 </dependency>

只需修改DgroupId、DartifactId、Dversion的值即可

-Dfile:jar存放的位置,安装前放置好,安装完可以删除。

作者:Kaspar_Choo
         
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/kaspar/p/14468069.html