Docker安裝Nexus搭建Maven私服、部署引用jar包

docker run --restart="always" -d -p 8081:8081 --name nexus -v /opt/data/nexus-data:/nexus-data sonatype/nexus3 

注意點(diǎn):若出現(xiàn)權(quán)限問(wèn)題

chmod 777 nexus-data

內(nèi)存占用情況:
image.png

1、歡迎頁(yè)(默認(rèn)賬號(hào):admin 默認(rèn)密碼:admin123)

image.png

2、倉(cāng)庫(kù)介紹

image.png

proxy:

是遠(yuǎn)程倉(cāng)庫(kù)的代理。比如說(shuō)在nexus中配置了一個(gè)central repository的proxy,當(dāng)用戶向這個(gè)proxy請(qǐng)求一個(gè)artifact,這個(gè)proxy就會(huì)先在本地查找,如果找不到的話,就會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載,然后返回給用戶,相當(dāng)于起到一個(gè)中轉(zhuǎn)的作用

Hosted:

是宿主倉(cāng)庫(kù),用戶可以把自己的一些構(gòu)件,deploy到hosted中,也可以手工上傳構(gòu)件到hosted里。比如說(shuō)oracle的驅(qū)動(dòng)程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里

Group:

是倉(cāng)庫(kù)組,在maven里沒(méi)有這個(gè)概念,是nexus特有的。目的是將上述多個(gè)倉(cāng)庫(kù)聚合,對(duì)用戶暴露統(tǒng)一的地址,這樣用戶就不需要在pom中配置多個(gè)地址。

maven-central:maven中央庫(kù),默認(rèn)從[https://repo1.maven.org/maven2/](https://repo1.maven.org/maven2/)拉取jar 
maven-releases:私庫(kù)發(fā)行版jar 
maven-snapshots:私庫(kù)快照(調(diào)試版本)jar 
maven-public:倉(cāng)庫(kù)分組,把上面三個(gè)倉(cāng)庫(kù)組合在一起對(duì)外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用。

3、部署jar包到私服

在setting.xml添加對(duì)應(yīng)的用戶名密碼

 <servers>
    <server>
      <id>nexus-snapshots</id>    
      <username>username</username>
      <password>password</password>
    </server>
  </servers>

在pom文件中添加

    <distributionManagement>
        <snapshotRepository>
            <!--此名稱要和settings.xml中設(shè)置的ID一致-->
            <id>nexus-snapshots</id>
            <name>nexus-snapshots-name</name>
            <url>http://ip:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

4、從私服中引用自己部署上傳的jar包

在setting.xml文件中指定私服鏡像

<mirrors>

     <mirror>
        <!--該鏡像的唯一標(biāo)識(shí)符。id用來(lái)區(qū)分不同的mirror元素。  -->
        <id>my-nexus</id>
        <!--此處配置所有的構(gòu)建均從私有倉(cāng)庫(kù)中下載 *代表所有,也可以寫(xiě)central -->
        <mirrorOf>*</mirrorOf>
        <name>central repository</name>
        <!--該鏡像的URL。構(gòu)建系統(tǒng)會(huì)優(yōu)先考慮使用該URL,而非使用默認(rèn)的服務(wù)器URL。  -->
        <url>http://ip:8081/repository/maven-public/</url>
    </mirror>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
  </mirrors>

配置倉(cāng)庫(kù)

<profiles>
        <profile>
            <id>nexus</id>
            <!--遠(yuǎn)程倉(cāng)庫(kù)列表,它是Maven用來(lái)填充構(gòu)建系統(tǒng)本地倉(cāng)庫(kù)所使用的一組遠(yuǎn)程項(xiàng)目。  -->
            <repositories>
                <!--發(fā)布版本倉(cāng)庫(kù)-->
                <repository>
                    <id>nexus</id>
                    <!--name隨便-->
                    <name>Nexus Release Snapshot Repository</name>
                    <!--地址是nexus中repository(Releases/Snapshots)中對(duì)應(yīng)的地址-->
                    <url>http://47.105.49.228:8081/repository/maven-releases/</url>
                    <!--true或者false表示該倉(cāng)庫(kù)是否為下載某種類型構(gòu)件(發(fā)布版,快照版)開(kāi)啟。 -->
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <!--發(fā)現(xiàn)插件的遠(yuǎn)程倉(cāng)庫(kù)列表。倉(cāng)庫(kù)是兩種主要構(gòu)件的家。第一種構(gòu)件被用作其它構(gòu)件的依賴。這是中央倉(cāng)庫(kù)中存儲(chǔ)的大部分構(gòu)件類型。另外一種構(gòu)件類型是插件。-->
            <!--各節(jié)點(diǎn)的含義和repository是一樣的-->
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <name>Nexus Release Snapshot Repository</name>
                    <url>http://47.105.49.228:8081/repository/maven-snapshots/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    <!--設(shè)置maven編譯器級(jí)別-->
        <profile>
            <id>jdk18</id>
            <activation>
                <!--profile默認(rèn)是否激活的標(biāo)識(shí) -->
                <activeByDefault>true</activeByDefault>
                <!--activation有一個(gè)內(nèi)建的java版本檢測(cè),如果檢測(cè)到j(luò)dk版本與期待的一樣,profile被激活。 -->
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>
  </profiles>

激活配置

 <!--激活配置-->
    <activeProfiles>
        <!--profile下的id-->
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 首先私服是一種衍生出來(lái)的特殊的Maven遠(yuǎn)程倉(cāng)庫(kù),構(gòu)建私服的好處請(qǐng)看3.5私服 可以幫助大家建立私服的倉(cāng)庫(kù)管理軟件...
    zlcook閱讀 10,838評(píng)論 0 32
  • 目前版本已經(jīng)更新到了3.X下載地址:https://www.sonatype.com/download-oss-s...
    yunqing_71閱讀 2,606評(píng)論 0 0
  • Maven 倉(cāng)庫(kù) 在 Maven 的術(shù)語(yǔ)中,倉(cāng)庫(kù)是一個(gè)位置(place)。Maven 倉(cāng)庫(kù)是項(xiàng)目中依賴的第三方庫(kù),...
    acc8226閱讀 2,653評(píng)論 0 1
  • Nexus是Maven倉(cāng)庫(kù)管理器,管理開(kāi)發(fā)所需要的構(gòu)件。如果你每次都是從Apache提供的Maven中央倉(cāng)庫(kù)去下載...
    點(diǎn)融黑幫閱讀 3,928評(píng)論 0 6
  • 介紹 私服的優(yōu)點(diǎn):解決中央倉(cāng)庫(kù)網(wǎng)絡(luò)、重復(fù)下載、本公司非公開(kāi)組件多項(xiàng)目依賴等問(wèn)題。 在團(tuán)隊(duì)協(xié)作開(kāi)發(fā)中,為了提高開(kāi)發(fā)效...
    madfrog_hc閱讀 9,020評(píng)論 0 7

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