maven私服-nuxus安裝

  搭建私服的優點:

    (1) 降低中央倉庫負荷

    (2) 節省外網帶寬

    (3) 加速Maven構建

    (4) 自己部署構件

1. Nexus安裝

    (1) 下載:http://www.sonatype.org/nexus/,下載包:nexus-2.0.2.war

    (2) 安裝

         A. WAR方式安裝Nexus

         將nexus-2.0.2.war拷貝至Tomcat的部署目錄:C:\Apache-tomcat-7.0.26\webapps下,

         啓動Tomcat, 進入Tomcat管理首頁即可;

         瀏覽器訪問地址:http://localhost:8080/nexus

         B. Bundle方式安裝Nexus

         因爲Bundle方式的Nexus默認集成了Jetty容器,因此不需要其他第三方Web容器,解壓下載的Bundle

         方式的Nexus文件,有下面的兩個目錄:

         nexus-webapp-2.0.2:包含Nexus所需要的文件,如啓動腳本,依賴JAR等。

         sonatype-work:包含Nexus生成的配置文件、日誌文件、倉庫文件。

         WinOS下,進入nexus-webapp-2.0.2/bin/jsw/windows-x86-32運行nexus.bat腳本啓動服務。

         瀏覽器訪問地址:http://localhost:8081/nexus

         備註:

         更改訪問端口:修改nexus-webapp-2.0.2/conf/plexus.properties

    (3) 登錄

         Nexus默認的管理員及密碼:admin/admin123

2. Nexus的倉庫與倉庫組

    Nexus有四種倉庫類型:group,hosted,proxy,virtual,倉庫格式爲:maven2或maven1,倉庫屬性Policy

    爲:Release或Snapshot.

3. 配置Maven從Nexus下載構件

    (1) 在POM中配置Nexus倉庫

    <project>

         ...

         <repositories>

            <repository>

                 <id>nexus</id>

                 <name>Nexus</name>

                 <url>http://localhost:8081/nexus/content/groups/public/<url>

                 <release><enabled>true</enabled></release>

                 <snapshots><enabled>true></enabled></snapshots>

             </repository>

        </repositories>

        <pluginRepositories>

             <pluginRepository>

                 <id>nexus</id>

                 <name>Nexus</name>

                 <url>http://localhost:8081/nexus/content/groups/public/<url>

                 <release><enabled>true</enabled></release>

                 <snapshots><enabled>true></enabled></snapshots>

              </pluginRepository>

         </pluginRepositories>

         ...

    </project>

    上述配置只對當前項目有效,若需讓本機所有Maven項目均使用Mavne私服,應該在setting.xml中進行配置。

    (2) 在setting.xml中配置Nexus倉庫

    <settings>

          ...

          <profiles>

                <profile>

                    <id>nexus</id>

                    <repositories>

                        <repository>

                          <id>nexus</id>

                          <name>Nexus</name>

                          <url>http://localhost:8081/nexus/content/groups/public/<url>

                          <release><enabled>true</enabled></release>

                          <snapshots><enabled>true></enabled></snapshots>

                        </repository>

                     </repositories>

                     <pluginRepositories>

                        <pluginRepository>

                            <id>nexus</id>

                            <name>Nexus</name>

                            <url>http://localhost:8081/nexus/content/groups/public/<url>

                            <release><enabled>true</enabled></release>

                            <snapshots><enabled>true></enabled></snapshots>

                       </pluginRepository>

                     </pluginRepositories>

                </profile>

           </profiles>

           <activeProfiles>

               <activeProfile>nexus</activeProfiles>

           </activaProfiles>

            ...

    </settings>

    (3) 配置鏡像讓Maven只使用私服

    <settings>

          ...

          <mirrors>

              <mirror>

                  <id>nexus</id>

                  <mirrorOf>*<?mirrorOf>

                  <url>http://localhost:8081/nexus/content/groups/public/</url>

              </mirror>

          </mirrors>

          <profiles>

                <profile>

                    <id>nexus</id>

                    <repositories>

                        <repository>

                          <id>central</id>

                          <name>http://central</name>                        

                          <release><enabled>true</enabled></release>

                          <snapshots><enabled>true></enabled></snapshots>

                        </repository>

                     </repositories>

                     <pluginRepositories>

                        <pluginRepository>

                            <id>central</id>

                            <name>http://central</name>                           

                            <release><enabled>true</enabled></release>

                            <snapshots><enabled>true></enabled></snapshots>

                       </pluginRepository>

                     </pluginRepositories>

                </profile>

           </profiles>

           <activeProfiles>

               <activeProfile>nexus</activeProfiles>

           </activaProfiles>

            ...

    </settings>

    說明:該配置中倉庫及插件倉庫的id均爲central,即覆蓋了超級POM中央倉庫的配置,他們的ULR可以不做

    配置,因爲所有請求都會通過鏡像訪問私服地址。

4. 部署構件至Nexus

    (1) 使用Maven部署構件至Nexus

    <project>

        ...

        <distributionManagement>

            <repository>

                  <id>nexus-releases</id>

                  <name>Nexus Releasse Repository</name>

                  <url>http://localhost:8081/nexus/content/repositories/release</url>

            </repository>

            <snapshotRepository>

                  <id>nexus-snapshots</id>

                  <name>Nexus Snapshots Repository</name>

                  <url>http://localhost:8081/nexus/content/repositories/snapshots</url>

            </snapshotRepository>

         </distributionManagement>

         ...

    </project>

    Nexus的倉庫對於匿名用戶時只讀的,爲了方便部署,需要在setting.xml配置認證信息:

    <settings>

         ...

         <servers>

             <server>

                 <id>nexus-releases></id>

                 <username>admin</username>

                 <password>*****</password>

             </server>

             <server>

                 <id>nexus-snapshots></id>

                 <username>admin</username>

                 <password>*****</password>

             </server>

          </servers>

          ...

    </settings>

    (2) 手動部署第三方構件至Nexus

    選擇宿主倉庫如:3rd Party,在Artifact Upload中上傳。

5. 其他私服軟件

    Apache的Archive和JForg的Artifactory.


轉自:http://springsfeng.iteye.com/blog/1456856


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章