1. 程式人生 > >快速搭建MAVEN私服

快速搭建MAVEN私服


環境:windows64位

1.下載nexus執行包
https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/oss/nexus-2.14.8-01-bundle.zip

2.解壓
D:\nexus-2.14.8-01-bundle

會有兩個資料夾
nexus-2.14.8-01  和  sonatype-work


3.配置環境變數
D:\nexus-2.14.8-01-bundle\nexus-2.14.8-01\bin


4.安裝nexus服務
nexus install


5.啟動nexus服務
nexus start


6.訪問地址,預設埠是8081
http://127.0.0.1:8081/nexus/

使用者名稱密碼,預設是:admin/admin123


7.服務安裝好之後配置settings.xml檔案 以下是我在工作中用到的完整配置
<?xml version="1.0" encoding="UTF-8"?>  
    <settingss xmlns="http://maven.apache.org/SETTINGS/1.0.0"  
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settingss-1.0.0.xsd">  
        
        <!--<localRepository>C:\Users\Administrator\.m2\repository</localRepository>-->
        <mirrors>  

            <mirror>     
              <id>releases</id>     
              <mirrorOf>*</mirrorOf>     
              <url>http://192.168.1.188:8081/nexus/content/groups/public</url>     
            </mirror>    
            <mirror>     
              <id>snapshots</id>     
              <mirrorOf>*</mirrorOf>     
              <url>http://192.168.1.188:8081/nexus/content/groups/public-snapshots</url>     
            </mirror>     
            <mirror>  
                <id>alimaven</id>  
                <name>aliyun maven</name>  
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
                <mirrorOf>central</mirrorOf>  
            </mirror>             
           <!--    
            <mirror>  
                <id>alimaven</id>  
                <name>aliyun maven</name>  
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
                <mirrorOf>central</mirrorOf>  
            </mirror>  
      
               <mirror>  
                <id>uk</id>  
                <mirrorOf>central</mirrorOf>  
                <name>Human Readable Name for this Mirror.</name>  
                <url>http://uk.maven.org/maven2/</url>  
            </mirror>  
      
            <mirror>  
                <id>CN</id>  
                <name>OSChina Central</name>  
                <url>http://maven.oschina.net/content/groups/public/</url>  
                <mirrorOf>central</mirrorOf>  
            </mirror>  
      
         mirror>  
                <id>nexus</id>  
                <name>internal nexus repository</name>  
                <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>  
                <url>http://repo.maven.apache.org/maven2</url>  
                <mirrorOf>central</mirrorOf>  
            </mirror-->  
      
        </mirrors>

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

      <profiles>    
       <profile>    
          <id>nexus</id>    
          <repositories>    
            <repository>    
              <id>releases</id>    
              <url>http://nexus-releases</url>    
              <releases><enabled>true</enabled></releases>    
              <snapshots><enabled>true</enabled></snapshots>    
            </repository>    
            <repository>    
              <id>snapshots</id>    
              <url>http://nexus-snapshots</url>    
              <releases><enabled>true</enabled></releases>    
              <snapshots><enabled>true</enabled></snapshots>    
            </repository>    
          </repositories>    
          <pluginRepositories>    
             <pluginRepository>    
                    <id>releases</id>    
                     <url>http://nexus-releases</url>    
                     <releases><enabled>true</enabled></releases>    
                     <snapshots><enabled>true</enabled></snapshots>    
                   </pluginRepository>    
                   <pluginRepository>    
                     <id>snapshots</id>    
                      <url>http://nexus-snapshots</url>    
                    <releases><enabled>true</enabled></releases>    
                     <snapshots><enabled>true</enabled></snapshots>    
                 </pluginRepository>    
             </pluginRepositories>    
        </profile>    
      </profiles>
    <activeProfiles>    
      <activeProfile>nexus</activeProfile>    
    </activeProfiles>
 
</settingss>  


8.配置專案pom.xml檔案,在pom檔案中新增如下配置 ,注意<id>releases</id>和<id>snapshots</id> 需要和settings.xml檔案中的id一致

    <distributionManagement>  
            <repository>  
                <id>releases</id>  
                <name>User Project Release</name>  
                <url>http://192.168.1.188:8081/nexus/content/repositories/releases/</url>  
            </repository>  
      
            <snapshotRepository>  
                <id>snapshots</id>  
                <name>User Project SNAPSHOTS</name>  
                <url>http://192.168.1.188:8081/nexus/content/repositories/snapshots/</url>  
            </snapshotRepository>  
        </distributionManagement>  

9.關聯settings.xml檔案本人用myeclipse ,選擇Window->Preferences->輸入maven->選擇User Settings設定上面配置的settings檔案

10.所有的配置基本配置完成
執行專案會從代理倉庫下載jar包到私服倉庫,再從私服下載到本地

11.倉庫型別
hosted:本地倉庫,通常我們會部署自己的構件到這一型別的倉庫。比如公司的第二方庫。
proxy:代理倉庫,它們被用來代理遠端的公共倉庫,如maven中央倉庫。
group:倉庫組,用來合併多個hosted/proxy倉庫。

hosted一般可以分為
3rd party:一般用於上傳三方的jar包
Releases:公司專案的發行版本
Snapshots:公司專案的快照版本,也就是臨時版本

12.
使用deploy命令釋出版本

deploy可能會出現401錯誤,許可權問題
 1.確保第8條中倉庫id和settings.xml中倉庫id一致
 2.需要給admin使用者deploy命令授權

maven私服安裝的時候已經是系統服務了,隨系統重啟而重啟