Maven項目使用了本地Jar包如何自動打包

一、前言

構(gòu)建項目的時候避免不了使用一些本地 Jar 包,這些Jar包不在中央倉庫里存在,我們在本地添加了依賴后,本機(jī)使用雖然沒問題,但是如果想用比如 Docker 自動化構(gòu)建這種遠(yuǎn)程構(gòu)建的話就會出現(xiàn)問題,針對這種情況,可以采用以下幾個步驟解決:

二、將本地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 這個 jar 包用 jar 的形式安裝到倉庫,這樣項目中就可以直接引用了。
引用示例:

   <dependencies>
        <dependency>
            <groupId>site.xiaobu</groupId>
            <artifactId>xiaobuTool</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

三、找到本地倉庫中安裝的Jar包根目錄并復(fù)制到項目下

3.1 安裝的 jar 包默認(rèn)在~/.m2/repository下面

本地安裝jar包位置

3.2 在項目根目錄中新建一個 lib 文件夾并將要使用的本地jar包整個目錄復(fù)制進(jìn)去
lib目錄

三、在POM文件中配置本地倉庫

在 pom 文件中添加下列的項,id 和 name 可以隨意,url 中 ${project.basedir} 指的是項目根目錄,意思是從將項目根目錄下的 lib 文件夾作為本地倉庫。

    <repositories>
        <!-- 本地倉庫 -->
        <repository>
            <id>in-project</id>
            <name>In Project Repo</name>
            <url>file://${project.basedir}/lib</url>
        </repository>
    </repositories>

四、后記

至此,maven 項目就可以在其余主機(jī)上順利被構(gòu)建了。
附帶項目的一些構(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">
                                    <!-- 指定項目主啟動類 -->
                                    <mainClass>xxx.xxx.xxx.xxx.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容