基於Nexus搭建私服 1. 工作流程 2. 倉庫類型 hosted 私服倉庫 proxy倉庫 遠程倉庫 group倉庫 組倉庫,裡面可以設置組合多個倉庫。按順序獲取jar。 3. 預設倉庫 安裝好了Nexus後,會內置幾個maven的預設倉庫。可自定義倉庫。 maven-central proxy ...
基於Nexus搭建私服
1. 工作流程
2. 倉庫類型
hosted
私服倉庫
proxy倉庫
遠程倉庫
group倉庫
組倉庫,裡面可以設置組合多個倉庫。按順序獲取jar。
3. 預設倉庫
安裝好了Nexus後,會內置幾個maven的預設倉庫。可自定義倉庫。
maven-central
proxy類型。maven中央庫,預設從https://repo1.maven.org/maven2/
拉取jar。
maven-releases
hosted類型。releases發行版版本倉庫。
maven-snapshots
hosted類型。snapshots快照版版本倉庫。
maven-public
group類型。預設把上面3個倉庫組合在一起。
註意:Nexus安裝好以後需要更新遠程倉庫項目構建的索引文件。進入倉庫就可以看到相關的按鈕。
4. 項目配置
採用settings.xml中配置倉庫的方式進行配置。
settings.xml配置server
<servers>
<server>
<id>release</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshot</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
項目pom.xml配置distributionManagement與server對應
<distributionManagement>
<repository>
<id>release</id>
<name>Release Repository</name>
<!--地址,對應倉庫屬性中可以找到-->
<url>http://xxx/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshot</id>
<name>Snapshot Repository</name>
<url>http://xxx/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
settings.xml配置repository
settings.xml中不能單獨配置repository,基於profile進行配置。
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<!--覆蓋掉中央倉庫-->
<id>central</id>
<name>nexus central</name>
<url>http://xxx/repository/maven-public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<!--快照版本,不從中央倉庫拿-->
<enabled>false</enabled>
</snapshots>
</repository>
<!--另外的倉庫,會按照順序進行查找-->
<repository>
<id>releases</id>
<url>http://xxx/repository/maven-releases/</url>
</repository>
<repository>
<id>snapshots</id>
<url>http://xxx/repository/maven-snapshots/</url>
</repository>
</repositories>
<!--配置插件下載的倉庫-->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>snapshots</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>