Maven引入與打包指定目錄下的第三方sdk的幾種方法
針對(duì)遠(yuǎn)程倉(cāng)庫(kù)沒(méi)有的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é)同開(kāi)發(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>
詳見(jiàn)下圖
3、打jar包發(fā)布運(yùn)行時(shí),仍然沒(méi)有把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-01CommonMark 使用教程:將 Markdown 語(yǔ)法轉(zhuǎn)成 Html
這篇文章主要介紹了CommonMark 使用教程:將 Markdown 語(yǔ)法轉(zhuǎn)成 Html,這個(gè)技巧我們做任何網(wǎng)站都可以用到,而且非常好用。,需要的朋友可以參考下2019-06-06一篇文章帶你學(xué)習(xí)JAVA MyBatis底層原理
近來(lái)想寫(xiě)一個(gè)mybatis的分頁(yè)插件,但是在寫(xiě)插件之前肯定要了解一下mybatis具體的工作原理吧,本文就詳細(xì)總結(jié)了MyBatis工作原理,,需要的朋友可以參考下2021-09-09springboot+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-01java數(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-08Spring基于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