maven systemPath方式加载和打包
Posted ZH519080
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven systemPath方式加载和打包相关的知识,希望对你有一定的参考价值。
在开发工程中,有些jar是自己开发的,当被引用到其他工程或项目中时,需要把自己开发的jar添加到其他工程中。在此记录以下,使用IntelliJ IDEA 2019.2.3和apache-maven-3.3.9实现加载jar和使用maven打包时,把自己开发的jar打进去:
在pom.xml文件中配置如下:
在依赖中添加:
<dependency>
<groupId>com.scopa.graph</groupId>
<artifactId>deep-analysis</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>$project.basedir/lib/deep-analysis-1.0.jar</systemPath>
</dependency>
解释:
groupId:此名称可自定义,com.scopa.graph是我自定义的名称;
artifactId:此名称可自定义,deep-analysis是我自定义的名称,不过这个最好与加载的jar(deep-analysis-1.0.jar)名称保持一致,我要加载的jar名称为deep-analysis-1.0.jar,artifactId名称通常不加版本号,artifactId名称与加载的jar名称保持以下,因此artifactId的名称可定义为deep-analysis
version:此为加载的jar版本号,最好与加载的jar保持一致,加载的jar名称为deep-analysis-1.0.jar,版本号为后面的数字。这个可修改,但是version不能丢失。
scope:使用system
systemPath:本地jar文件你放在系统文件的目录,$project.basedir表示项目根目录,直接这样写就行,lib/deep-analysis-1.0.jar是自己开发的jar。
把deep-analysis-1.0.jar打包时,打进项目或工程中:
<resources>
<resource>
<!--把src/main/java目录下的properties、xm文件打包打进程序中-->
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<!--把src/main/resources目录下的properties、xm文件打包打进程序中-->
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<!--把lib/目录下第三方jar包打进程序中,如上面的systemPath目录下的jar-->
<directory>lib/</directory>
<includes>
<include>**/*.jar</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
这样,使用命令:
mvn clean
mvn package -D skipTests 命令即可
以上是关于maven systemPath方式加载和打包的主要内容,如果未能解决你的问题,请参考以下文章
带有 <systemPath> 标记的 Maven 项目 POM 中的条目未包含在生成的战争文件 WEB-INF\lib 文件夹中
Spring Boot——Maven使用SystemPath引用本地jar:ClassNotFoundException