Maven引入與打包指定目錄下的第三方sdk的幾種方法
針對(duì)遠(yuǎn)程倉(cāng)庫(kù)沒有的jar包,應(yīng)該如何引入與打包?
1、deploy到遠(yuǎn)程倉(cāng)庫(kù)
申請(qǐng)賬號(hào)與權(quán)限,使用mvn deploy命令發(fā)布到遠(yuǎn)程倉(cāng)庫(kù)或者是私有倉(cāng)庫(kù)。
1、在Maven的conf/settings.xml文件配置遠(yuǎn)程倉(cāng)庫(kù)的認(rèn)證信息
<settings>
<!-- 配置遠(yuǎn)程倉(cāng)庫(kù)的認(rèn)證信息(以id標(biāo)簽為標(biāo)識(shí)) -->
<servers>
<server>
<id>nexus</id>
<username>your-nexus-username</username>
<password>your-nexus-password</password>
</server>
</servers>
</settings>
3、使用deploy命令發(fā)布到遠(yuǎn)程倉(cāng)庫(kù)
mvn deploy:deploy-file \ -DgroupId=com.dist.model \ -DartifactId=dist-model-api \ -Dversion=1.0.0-SNAPSHOT \ -Dpackaging=jar \ -Dfile=/Users/laizhenghua/Downloads/jar/dist-model-api-1.0.0-SNAPSHOT.jar \ -Durl=http://10.60.10.38:8081/repository/maven-releases \ -DrepositoryId=nexus
這種方式是比較推薦的,所有的依賴都在遠(yuǎn)程倉(cāng)庫(kù)上進(jìn)行管理,其他人使用時(shí)直接添加GAV坐標(biāo)即可,無(wú)需添加額外的配置,非常簡(jiǎn)單與方便。
2、install到本地倉(cāng)庫(kù)
mvn install:install-file \ -Dmaven.repo.local=/Users/laizhenghua/soft/maven/repository \ -DgroupId=com.dist.engine \ -DartifactId=dist-engine-material \ -Dversion=5.0.9-SNAPSHOT \ -Dpackaging=jar \ -Dfile=/Users/laizhenghua/Downloads/jar/dist-engine-material-5.0.9-SNAPSHOT.jar # 命令參數(shù)說(shuō)明 # -Dmaven.repo.local 本地倉(cāng)庫(kù)位置 # -DgroupId gav坐標(biāo)信息的g # -DartifactId gav坐標(biāo)信息的a # -Dversion gav坐標(biāo)信息的v # -Dpackaging 文件類型 # -Dfile 文件
install到本地后,也是添加GAV坐標(biāo)就能在當(dāng)前工程引入此依賴,但是這種方式協(xié)同開發(fā)不方便,其他人也要用到此依賴時(shí),也需要拿到j(luò)ar包后,在本地手動(dòng)install一下,無(wú)法做到共享。
3、通過(guò)idea的Add as Library引入
在當(dāng)前工程新建lib目錄,將第三方的sdk或jar包都放到此目錄下,如

在通過(guò)idea的Add as Library...功能就能引入第三方的SDK或者是jar包,如下圖

但是這種方式也有弊端,比如其他人接手此項(xiàng)目時(shí),也得手動(dòng)Add as Libraty...不太方便。
4、基于3的改進(jìn)通過(guò)Maven配置引入
方式3有一定的局限性,我們希望其他人接手項(xiàng)目時(shí),不需要做任何改動(dòng)也能正常引入所有依賴正常啟動(dòng)項(xiàng)目。
1、Maven引入指定目錄的jar,即讀取本地的jar
<!--
1.新增scope和systemPath標(biāo)簽
2.${project.basedir}就是當(dāng)前工程目錄
-->
<dependency>
<groupId>com.dist.sdk</groupId>
<artifactId>sdk-api</artifactId>
<version>5.0.8-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/sdk-api-5.0.8-SNAPSHOT.jar</systemPath>
</dependency>
2、增加打包掃描的配置,否則打包時(shí)不會(huì)將scope=system的依賴打進(jìn)去。
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--增加這個(gè)配置-->
<configuration>
<skip>true</skip>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
詳見下圖

3、打jar包發(fā)布運(yùn)行時(shí),仍然沒有把scope=system的依賴打進(jìn)去,就需要新增如下配置
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<!--jar包添加第三方lib-->
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
4、打war包時(shí)需要通過(guò)插件配置指定lib目錄才行,如
<!--war包添加第三方lib-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>到此這篇關(guān)于Maven引入與打包指定目錄下的第三方sdk的文章就介紹到這了,更多相關(guān)Maven引入打包第三方sdk內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java接入創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)例講解
下面小編就為大家分享一篇java接入創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
CommonMark 使用教程:將 Markdown 語(yǔ)法轉(zhuǎn)成 Html
這篇文章主要介紹了CommonMark 使用教程:將 Markdown 語(yǔ)法轉(zhuǎn)成 Html,這個(gè)技巧我們做任何網(wǎng)站都可以用到,而且非常好用。,需要的朋友可以參考下2019-06-06
一篇文章帶你學(xué)習(xí)JAVA MyBatis底層原理
近來(lái)想寫一個(gè)mybatis的分頁(yè)插件,但是在寫插件之前肯定要了解一下mybatis具體的工作原理吧,本文就詳細(xì)總結(jié)了MyBatis工作原理,,需要的朋友可以參考下2021-09-09
springboot+vue實(shí)現(xiàn)SSE服務(wù)器發(fā)送事件的示例
本文介紹了使用Spring Boot和Vue實(shí)現(xiàn)服務(wù)器發(fā)送事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
java數(shù)據(jù)結(jié)構(gòu)與算法之中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式的方法
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式的方法,簡(jiǎn)單分析了java中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式的相關(guān)實(shí)現(xiàn)方法與技巧,需要的朋友可以參考下2016-08-08
Spring基于xml實(shí)現(xiàn)自動(dòng)裝配流程詳解
自動(dòng)裝配是使用spring滿足bean依賴的一種方法,spring會(huì)在應(yīng)用上下文中為某個(gè)bean尋找其依賴的bean,Spring中bean有三種裝配機(jī)制,分別是:在xml中顯式配置、在java中顯式配置、隱式的bean發(fā)現(xiàn)機(jī)制和自動(dòng)裝配2023-01-01

