Linux 使用nexus搭建maven私服

1、準備工做

     系統:LINUXhtml

          JDK:已安裝(未安裝詳見jdk安裝教程:http://www.cnblogs.com/muzi1994/p/5818099.html)docker

          Maven:已安裝(未安裝詳見maven安裝教程:http://www.cnblogs.com/muzi1994/p/6030181.html)centos

          Nexus:http://www.sonatype.org/nexus/gomaven

                     全部版本下載地址: http://www.sonatype.org/nexus/archived/this

          Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本身內部倉庫的維護和外部倉庫的訪問。url

2、安裝Nexus

  1.解壓nexus文件spa

[root@centos6 var]# tar -zvxf nexus-2.12.0-01-bundle.tar.gz

  

      注:解壓後有兩個文件夾:插件

                  nexus-2.12.0-01: 是nexus的核心文件code

                  sonatype-work :maven下載jar存放地址server

  2.啓動Nexus

[root@centos6 nexus-2.12.0-01]# ./bin/nexus start

- ****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

  默認狀況下,不建議以root用戶運行Nexus,能夠修改bin/nexus中的配置跳過警告(修改RUN_AS_USER=root)

[root@centos6 nexus-2.12.0-01]# vi bin/nexus

  

     從新啓動Nexus

[root@centos6 nexus-2.12.0-01]# ./bin/nexus start

- ****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.

  注:Nexus默認端口8081,若是想修改端口。修改/conf/nexus.properties文件

      

      訪問網址:http://192.168.1.11:8081/nexus/#welcome

      

      點擊右上角的 Log In 按鈕便可登錄了。默認登陸帳號/密碼爲: admin/admin123 ,登錄成功後的界面

      

  點擊Repositories將列表中全部Type爲proxy 的項目的 Configuration 中的 Download Remote Indexes 設置爲True

      

     將Releases倉庫的Deployment Policy設置爲 Allow ReDeploy

      

      固然咱們也避免不了會使用到一些第三方的 jar ,而這些jar包也不存在於互聯網上的maven中央倉庫中,這時咱們能夠手工添加jar 到咱們的私服中。

      添加第三方 jar 以下:

      

      填寫完必選字段,點擊Upload Artifact(s)按鈕便可。

  3.配置本地項目引用私服

   自動發佈構件到遠程倉庫,在工程pom.xml中添加

<distributionManagement>
    <repository>
        <id>releases</id><!--這個ID須要與你的release倉庫的Repository ID一致-->
        <url>http://192.168.1.11:8081/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id><!--這個ID須要與你的snapshots倉庫的Repository ID一致-->
        <url>http://192.168.1.11:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>

  修改本地$MAVEN_HOME\conf目錄下的settings.xml配置文件,添加以下配置

<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

  在本地工程目錄下執行:

mvn deploy

  所部署的包就自動上傳到了nexus安裝目錄下的

     

  4.配置Maven從Nexus下載構件

    在POM中配置Nexus私服,這樣的配置只對當前的Maven項目有效。

<!--指定Nexus的構件倉庫-->
<repositories>
    <repository>
        <id>public</id>
        <name>Team Maven Repository</name>
        <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<!--指定Nexus的插件倉庫-->
<pluginRepositories>
    <pluginRepository>
        <id>public</id>
        <name>Team Maven Repository</name>
        <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

  在settings.xml中配置profile元素,這樣就能讓本機全部的Maven項目都使用本身的Maven私服。

<properties>
        <repository>
            <id>public</id>
            <name>Team Maven Repository</name>
            <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
</properties>

Docker安裝Nexus

echo  "下載Nexus鏡像"
docker pull sonatype/nexus3
echo  "啓動Nexus容器"
docker run -d -p 8081:8081 --name nexus3 sonatype/nexus3
相關文章
相關標籤/搜索