欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven打包上傳到私有倉庫的實(shí)現(xiàn)步驟

 更新時(shí)間:2023年01月03日 08:39:15   作者:茁壯成長的凌大大  
這篇文章主要介紹了maven打包上傳到私有倉庫的實(shí)現(xiàn)步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 背景

最近有些自己制作的工具包,需要單獨(dú)抽取出來之后,在打包的時(shí)候,同時(shí)上傳到自己的maven私服倉庫,供別人引用,并且還能夠引用的時(shí)候看到源碼。

但是,在上傳的過程中總是失敗不成功,特別上火。最后總算成功,記錄下步驟,希望能夠幫助到需要的人。

2. 步驟

先說下我的要求:

本地打包能夠自動(dòng)上傳maven私服倉庫。

別人引用后,能夠看到源碼及注釋。

2.1 修改pom.xml

2.1.1 指定上傳倉庫地址

首先需要到自己項(xiàng)目里的pom.xml里添加下邊一段

  <distributionManagement>
  <!--穩(wěn)定版本的倉庫地址,必須是允許上傳的私服地址-->
        <repository>
            <id>releases</id>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/thirdparty</url>
        </repository>
        <!--開發(fā)版本的倉庫地址,必須是允許上傳的私服地址-->
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://maven.aaaaaa.com/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

對(duì)于我們平時(shí)的項(xiàng)目版本號(hào)是類似XX-SNAPSHOT這種的,這類就是數(shù)據(jù)開發(fā)版本,這種上傳私服后會(huì)以版本號(hào)+時(shí)間戳的形式遞增,它上傳必須要指定<snapshotRepository>地址。

上圖中,id后邊會(huì)說,這里的url的地址,是對(duì)應(yīng)你倉庫地址,你可以在瀏覽器里訪問下類似http://maven.aaaaaa.com/nexus的地址,輸入賬號(hào)密碼,登錄后,如下圖4對(duì)應(yīng)的地址,就是:


需要注意的是,因?yàn)樯蠄D中,我們倉庫有好幾個(gè),我是上傳到了3對(duì)應(yīng)的倉庫,你可以根據(jù)你們實(shí)際的倉庫地址來就行。

另外id對(duì)應(yīng)的releases其實(shí)是與指定的maven配置文件conf/setttings.xml中對(duì)應(yīng),如下圖所示:


如果對(duì)應(yīng)的settings.xml里沒有配置<servers>對(duì)應(yīng)的標(biāo)簽,那也需要添加一下。

如下示例:

  <servers>
    <server>
    	<!--與2.1.1中的id值對(duì)應(yīng)-->
        <id>releases</id>
        <!--賬號(hào)密碼需要與私服登錄賬號(hào)密碼一致-->
        <username>admin</username>
        <password>znxd</password>
    </server>
  </servers>

還有,注意倉庫的賬號(hào)密碼需要正確。

2.1.2 添加源碼插件

上邊的配置僅僅是指定倉庫的地址,因?yàn)檫€需要讓下載依賴的人,能夠看到源碼,因此還需要有一個(gè)插件,maven-source-plugin

再找到項(xiàng)目的pom.xml,添加如下插件:

<!-- 上傳源碼 -->
   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
            <attach>true</attach>
        </configuration>
        <executions>
            <execution>
                <phase>compile</phase>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

最后,總結(jié)一下現(xiàn)在pom.xml新增的這倆東西的位置:

<project>
	<!-----------省略多余的依賴---------->
	<build>
        <plugins>
         <!-----------省略多余的plugin---------->
         <!-- 上傳源碼 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://maven.aaaaa.com/nexus/content/repositories/thirdparty</url>
        </repository>
    </distributionManagement>
</project>

注意:不能引用spring-boot-maven-plugin插件,這個(gè)插件一旦引入生效,就表示你當(dāng)前做的jar包是一個(gè)可運(yùn)行的包,而不是我們往私服上傳的工具包了

2.2 命令執(zhí)行

配置完成了之后,就可以執(zhí)行命令了,這里可以通過兩種命令實(shí)現(xiàn),一種是開發(fā)工具idea里執(zhí)行,另一種是通過環(huán)境變量的mvn命令。

注意,不管用下邊哪種命令,都需要先注意版本號(hào),如果私服里存在你這個(gè)版本的包,那肯定會(huì)打包上傳不成功,可能會(huì)報(bào)錯(cuò):Return code is: 400, ReasonPhrase: Bad Request。

因此,別忘了改下版本。如下圖所示:

2.2.1 idea中執(zhí)行

如果你的開發(fā)工具是idea,其實(shí)eclipse也一樣,建議用這種方式。  

在開發(fā)工具中,找到右側(cè)的maven project,如下圖所示:


  

最終的命令,其實(shí)是執(zhí)行了clean deploy。

如果執(zhí)行完后出現(xiàn)大概下邊的日志,說明成功了。

[INFO] Building jar:*******
[INFO] Installing ****  to  *****
[INFO] --- ****   Uploading:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

當(dāng)然,也可以通過瀏覽器去訪問下,找下是否倉庫里有對(duì)應(yīng)jar包。

2.2.2 mvn命令執(zhí)行

如果想使用mvn命令,那就需要注意maven環(huán)境變量配置,這里不說咋配置mvn命令了,這里說下步驟和注意的地方。

首先,打開項(xiàng)目所在目錄,通過`cmd打開當(dāng)前目錄,如下圖所示:

執(zhí)行命令如下:

mvn -s "C:\Program Files\apache-maven-3.5.011\conf\settings-154waiwang.xml" deploy

其中 -s--settings的縮寫。

這里我也是被坑慘了,我一直以為,因?yàn)槲以谂渲?code>maven環(huán)境變量的時(shí)候,指定了maven_home/m2_home,我覺得,當(dāng)我使用mvn命令時(shí),會(huì)自動(dòng)使用對(duì)應(yīng)的settings.xml文件進(jìn)行打包,然后并不是,所以為什么上邊需要通過-s來指定下settings.xml才可以。

如果不指定的話,會(huì)報(bào)錯(cuò)Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] ,大概是無權(quán)限的意思。看來應(yīng)該是不指定的話,會(huì)走一個(gè)默認(rèn)的文件,因?yàn)槟莻€(gè)文件里沒有對(duì)應(yīng)的賬號(hào)密碼,因此會(huì)報(bào)錯(cuò)。

2.3 成功后的依賴

上傳成功后,可以通過地址找一下,如下圖即表示成功:

3. 擴(kuò)展

比如你做這個(gè)依賴包,可能后邊還會(huì)有更新的時(shí)候,但是如果以前的依賴包已經(jīng)被別人使用,那不可能一個(gè)個(gè)的通知使用者,maven本身提供這種自動(dòng)下載高版本的功能,只需要對(duì)version標(biāo)簽的值改一下。

如下:

<dependency>
     <groupId>com.agri</groupId>
     <artifactId>znxd-framework</artifactId>
     <version>[1.0,)</version>
 </dependency>

其中[1.0,)表示更新從1.0版本開始的最新包。這樣有個(gè)好處就是,當(dāng)你的擴(kuò)展包更新成大于1.0的包時(shí),使用人的工程里,會(huì)自動(dòng)變更為最新的包。

這樣你就可以在寫錯(cuò)代碼的時(shí)候,偷偷的自己更新成最新的包,避免尷尬。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java8中用foreach循環(huán)獲取對(duì)象的index下標(biāo)詳解

    Java8中用foreach循環(huán)獲取對(duì)象的index下標(biāo)詳解

    這篇文章主要給大家介紹了關(guān)于Java8中用foreach循環(huán)獲取對(duì)象的index下標(biāo)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 如何簡單使用mybatis注解

    如何簡單使用mybatis注解

    之前我們介紹了使用JDBC或者java框架mabatis來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作,現(xiàn)在為了簡化代碼,提高程序的簡潔性,我們探索如何使用注解進(jìn)行開發(fā),需要的朋友可以參考下
    2021-06-06
  • Java中@RestController注解使用

    Java中@RestController注解使用

    在Spring框架中,@RestController注解是一個(gè)非常重要的注解,它用于將一個(gè)類標(biāo)記為RESTful風(fēng)格的控制器,本文就來介紹一下Java中@RestController注解使用,感興趣的可以了解一下
    2023-11-11
  • Springboot自定義banner及驗(yàn)證過程

    Springboot自定義banner及驗(yàn)證過程

    這篇文章主要介紹了Springboot自定義banner及驗(yàn)證過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 解決java.util.NoSuchElementException異常正確方法

    解決java.util.NoSuchElementException異常正確方法

    java.util.NoSuchElementException是Java中的一種異常,表示在迭代器或枚舉中找不到元素,這篇文章主要給大家介紹了關(guān)于解決java.util.NoSuchElementException異常的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java Servlet上傳圖片到指定文件夾并顯示圖片

    Java Servlet上傳圖片到指定文件夾并顯示圖片

    在學(xué)習(xí)Servlet過程中,針對(duì)圖片上傳做了一個(gè)Demo,如果大家對(duì)Java Servlet上傳圖片到指定文件夾并顯示圖片功能感興趣的朋友大家通過本文一起學(xué)習(xí)吧
    2017-08-08
  • java中ResultSet遍歷數(shù)據(jù)操作

    java中ResultSet遍歷數(shù)據(jù)操作

    這篇文章主要介紹了java中ResultSet遍歷數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 使用postman傳遞list集合后臺(tái)springmvc接收

    使用postman傳遞list集合后臺(tái)springmvc接收

    這篇文章主要介紹了使用postman傳遞list集合后臺(tái)springmvc接收的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java訪問者設(shè)計(jì)模式詳細(xì)講解

    Java訪問者設(shè)計(jì)模式詳細(xì)講解

    大多數(shù)情況下你不需要訪問者模式,但當(dāng)一旦需要訪問者模式時(shí),那就是真的需要它了,這是設(shè)計(jì)模式創(chuàng)始人的原話??梢钥闯鰬?yīng)用場(chǎng)景比較少,但需要它的時(shí)候是不可或缺的,這篇文章就開始學(xué)習(xí)最后一個(gè)設(shè)計(jì)模式——訪問者模式
    2022-11-11
  • idea的使用之關(guān)于tomcat熱部署的教程

    idea的使用之關(guān)于tomcat熱部署的教程

    這篇文章主要介紹了idea的使用之關(guān)于tomcat熱部署的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論