Maven引入與打包指定目錄下的第三方sdk的幾種方法
針對遠程倉庫沒有的jar包,應該如何引入與打包?
1、deploy到遠程倉庫
申請賬號與權(quán)限,使用mvn deploy
命令發(fā)布到遠程倉庫或者是私有倉庫。
1、在Maven的conf/settings.xml
文件配置遠程倉庫的認證信息
<settings> <!-- 配置遠程倉庫的認證信息(以id標簽為標識) --> <servers> <server> <id>nexus</id> <username>your-nexus-username</username> <password>your-nexus-password</password> </server> </servers> </settings>
3、使用deploy命令發(fā)布到遠程倉庫
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
這種方式是比較推薦的,所有的依賴都在遠程倉庫上進行管理,其他人使用時直接添加GAV坐標即可,無需添加額外的配置,非常簡單與方便。
2、install到本地倉庫
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ù)說明 # -Dmaven.repo.local 本地倉庫位置 # -DgroupId gav坐標信息的g # -DartifactId gav坐標信息的a # -Dversion gav坐標信息的v # -Dpackaging 文件類型 # -Dfile 文件
install
到本地后,也是添加GAV坐標就能在當前工程引入此依賴,但是這種方式協(xié)同開發(fā)不方便,其他人也要用到此依賴時,也需要拿到jar包后,在本地手動install一下,無法做到共享。
3、通過idea的Add as Library引入
在當前工程新建lib目錄,將第三方的sdk或jar包都放到此目錄下,如
在通過idea的Add as Library...
功能就能引入第三方的SDK或者是jar包,如下圖
但是這種方式也有弊端,比如其他人接手此項目時,也得手動Add as Libraty...
不太方便。
4、基于3的改進通過Maven配置引入
方式3有一定的局限性,我們希望其他人接手項目時,不需要做任何改動也能正常引入所有依賴正常啟動項目。
1、Maven引入指定目錄的jar,即讀取本地的jar
<!-- 1.新增scope和systemPath標簽 2.${project.basedir}就是當前工程目錄 --> <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、增加打包掃描的配置,否則打包時不會將scope=system的依賴打進去。
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--增加這個配置--> <configuration> <skip>true</skip> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <phase>none</phase> </execution> </executions> </plugin> </plugins>
詳見下圖
3、打jar包發(fā)布運行時,仍然沒有把scope=system的依賴打進去,就需要新增如下配置
<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包時需要通過插件配置指定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>
到此這篇關于Maven引入與打包指定目錄下的第三方sdk的文章就介紹到這了,更多相關Maven引入打包第三方sdk內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html
這篇文章主要介紹了CommonMark 使用教程:將 Markdown 語法轉(zhuǎn)成 Html,這個技巧我們做任何網(wǎng)站都可以用到,而且非常好用。,需要的朋友可以參考下2019-06-06springboot+vue實現(xiàn)SSE服務器發(fā)送事件的示例
本文介紹了使用Spring Boot和Vue實現(xiàn)服務器發(fā)送事件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-01-01java數(shù)據(jù)結(jié)構(gòu)與算法之中綴表達式轉(zhuǎn)為后綴表達式的方法
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之中綴表達式轉(zhuǎn)為后綴表達式的方法,簡單分析了java中綴表達式轉(zhuǎn)為后綴表達式的相關實現(xiàn)方法與技巧,需要的朋友可以參考下2016-08-08