1. 程式人生 > >Maven精選系列--私庫搭建及使用

Maven精選系列--私庫搭建及使用

為什麼要使用私庫

maven預設去遠端中央倉庫下載JAR包的,訪問國外網路相當慢,如果團隊每個人都去下載一遍無疑是網路的浪費,當然也可以新增國內的映象,如阿里的比較穩定,但如果想新增遠端不存在的像第三方公司的JAR包就比較麻煩。

所以,使用私庫,第一,開源包只要有一個人下載過其他人就不需要再下載了,直接從私庫下載即可。第二,可以用來管理第三方公司的或者遠端倉庫不存在的JAR包,或者公司不開源的JAR包。

推薦國內穩定的映象,如阿里的

http://maven.aliyun.com/nexus/content/groups/public/

nexus下載安裝

首先去sonatype官網下載nexus包,要下載開源免費版的OSS版,即Open Source Software。

https://www.sonatype.com/nexus-repository-oss

下載最新的3.X的版本,這裡以windows為例進行下載。

下載後點擊bin目錄中的啟動檔案即可,預設的埠是8081,訪問路徑是/,也可以去配置檔案中修改,這裡以預設。

啟動後,開啟localhost:8081,nexus預設的使用者名稱是admin/admin123

預設安裝有以下這幾個倉庫,在控制檯也可以修改遠端倉庫的地址,第三方倉庫等。

Maven配置

修改maven主目錄conf/setting.xml配置檔案。

新增nexus認證的使用者名稱和密碼配置資訊。

<servers>

    <server>

          <id>nexus-releases</id>

          <privateKey>admin</privateKey>

          <passphrase>admin123</passphrase>

    </server>

    <server>

          <id>nexus-snapshots</id>

          <privateKey>admin</privateKey>

          <passphrase>admin123</passphrase>

    </server>

</servers>

新增mirror映象

 <mirrors>

    <mirror>

          <id>Nexus</id>

          <mirrorOf>*</mirrorOf>

          <name>Nexus</name>

          <url>http://127.0.0.1:8081/repository/maven-public/</url>

     </mirror>

  </mirrors>

新增私庫

<profiles>

<profile>

<id>Nexus</id>

<repositories>

<repository>

<id>Nexus</id>

<name>Nexus</name>

<url>http://127.0.0.1:8081/repository/maven-public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>Nexus</id>

<name>Nexus</name>

<url>http://127.0.0.1:8081/repository/maven-public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

啟用私庫

<activeProfiles>

    <activeProfile>Nexus</activeProfile>

</activeProfiles>

釋出到私庫

在pom配置檔案中新增

<!-- nexus-releases nexus-snapshots與settings.xml中server下的id對應 -->

<distributionManagement>

<repository>

<id>nexus-releases</id>

<name>Nexus Releases Repository</name>

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

</repository>

<snapshotRepository>

<id>nexus-snapshots</id>

<name>Nexus Snapshots Repository</name>

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

</snapshotRepository>

</distributionManagement>

在專案上使用命令mvn deploy打包就能釋出到私庫。