因为在自己公司私服上有一些包,但是项目需要交付给别人使用的情况下,需要引入本地的 jar,而且要求打包时将这些本地 jar 一起打包。
Maven 项目中引入本地 jar 包的常用方式
1. 将 jar 打包到本地 Maven 仓库
mvn install:install-file -Dfile=D://xxx.jar -DgroupId=com.xxx -DartifactId=xxx -Dversion=0.0.1 -Dpackaging=jar
也可以使用idea的maven插件install来进行打包
不同的是 install 之后,依赖只存在本地的 Maven 仓库中,如果别的机器想使用这个依赖,还是需要运行上面的命令
2. IDE 引入(不推荐使用,项目打包发布,不会打包这个jar包)
例如我使用 IDEA,我直接在 Project Structure -> Liberies
中增加 jar 路径。
这种方式在开发时没问题,但是使用 Maven 打包时并不会包含这些 jar
3. 利用 pom 文件的 scope 属性(推荐)
将要引用的本地 jar 都放在项目的 lib 目录中,然后在 pom 文件中引入
<build>
<plugins>
<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>
</plugins>
</build>
<groupId> :公司或组织的 id,即公司或组织域名的倒序,通常也会加上项目名称
<artifactId>:一个项目或者是项目中的一个模块的 id
<version>:版本号
<scope>system</scope> : 不要改
<systemPath>:包的相对路经的地址信息:
${pom.basedir}
:表示 pom 文件的目录
然后在 plugin 中,加入
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
//是否包括引入的包
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>