一叶洞、前言
構(gòu)建項(xiàng)目的時(shí)候避免不了使用一些本地 Jar 包,這些Jar包不在中央倉庫里存在座哩,我們在本地添加了依賴后苍凛,本機(jī)使用雖然沒問題趣席,但是如果想用比如 Docker 自動(dòng)化構(gòu)建這種遠(yuǎn)程構(gòu)建的話就會(huì)出現(xiàn)問題,針對(duì)這種情況醇蝴,可以采用以下幾個(gè)步驟解決:
二宣肚、將本地Jar包安裝成Maven依賴
進(jìn)入到 Jar 包所在目錄,使用一條命令:
mvn install:install-file -DgroupId=site.xiaobu -DartifactId=xiaobuTool -Dversion=1.0.0 -Dpackaging=jar -Dfile=xiaobuTool.jar
這條命令的意思是將 xiaobuTool.jar 這個(gè) jar 包用 jar 的形式安裝到倉庫悠栓,這樣項(xiàng)目中就可以直接引用了霉涨。
引用示例:
<dependencies>
<dependency>
<groupId>site.xiaobu</groupId>
<artifactId>xiaobuTool</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
三弧呐、找到本地倉庫中安裝的Jar包根目錄并復(fù)制到項(xiàng)目下
3.1 安裝的 jar 包默認(rèn)在~/.m2/repository
下面
本地安裝jar包位置
3.2 在項(xiàng)目根目錄中新建一個(gè) lib 文件夾并將要使用的本地jar包整個(gè)目錄復(fù)制進(jìn)去
lib目錄
三、在POM文件中配置本地倉庫
在 pom 文件中添加下列的項(xiàng)嵌纲,id 和 name 可以隨意俘枫,url 中 ${project.basedir} 指的是項(xiàng)目根目錄,意思是從將項(xiàng)目根目錄下的 lib 文件夾作為本地倉庫逮走。
<repositories>
<!-- 本地倉庫 -->
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/lib</url>
</repository>
</repositories>
四鸠蚪、后記
至此,maven 項(xiàng)目就可以在其余主機(jī)上順利被構(gòu)建了师溅。
附帶項(xiàng)目的一些構(gòu)建配置:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- 指定項(xiàng)目主啟動(dòng)類 -->
<mainClass>xxx.xxx.xxx.xxx.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>