在Maven中使用分发管理的主要步骤是:
- 在pom.xml中定义元素:
<distributionManagement>
<repository>
<id>release</id>
<name>Internal Release Repository</name>
<url>http://.../repository/releases</url>
</repository>
<snapshotRepository>
<id>snapshot</id>
<name>Internal Snapshot Repository</name>
<url>http://.../repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
- 定义发布版本(非SNAPSHOT)构件的仓库
- 定义SNAPSHOT版本构件的仓库
- 通过mvn deploy将构件部署到定义的仓库:
- 发布版本构件部署到定义的仓库
- SNAPSHOT版本构件部署到定义的仓库
- 其他项目的pom.xml中使用和元素继承上述仓库:
<repositories>
<repository>
<id>release</id>
</repository>
<snapshotRepository>
<id>snapshot</id>
</snapshotRepository>
</repositories>
然后就可以解析这些仓库中的依赖了。
Maven分发管理的主要作用是:
- 隔离发布版本和开发版本(SNAPSHOT)构件。
- 指定构件部署位置,易于管理和下载。
- 简化其他项目的pom.xml,提高配置可重用性。
来看一个简单示例:
在pom.xml中定义分发管理:
<distributionManagement>
<repository>
<id>release</id>
<name>Release Repository</name>
<url>http://.../repository/releases</url>
</repository>
<snapshotRepository>
<id>snapshot</id>
<name>Snapshot Repository</name>
<url>http://.../repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
通过mvn deploy将构件部署到对应的仓库:
- 发布版本构件->release仓库
- SNAPSHOT版本构件->snapshot仓库
在其他项目pom.xml中继承这些仓库:
<repositories>
<repository>
<id>release</id>
</repository>
<snapshotRepository>
<id>snapshot</id>
</snapshotRepository>
</repositories>
然后就可以从对应的仓库解析依赖了。