我有一个包含多个项目的扁平项目结构。
我使用Nexus作为内部存储库,使用SVN进行源代码管理。
我能够部署项目的SNAPSHOT
版本。
在我的父pom中,我添加了maven release插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
</plugin>
和发布信息:
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
当我执行mvn release:prepare
时,具有发布版本的工件不会部署到repo。因此,如果我有一个项目A依赖于项目B.项目A无法使用发布版本获取B的工件。
答案 0 :(得分:10)
发布:默认情况下准备调用“clean”和“verify”目标,这些目标只是尝试编译并运行测试。因此,没有任何内容部署到您的远程存储库,也不会安装在本地存 要使用新版本处理多模块项目中的依赖项,您需要在发布期间在本地存储库中安装内容:prepare,因此使用prepareGoals属性将默认目标更改为“clean”和“install”。
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
<configuration>
<preparationGoals>clean install</preparationGoals>
</configuration>
</plugin>
您可以在构建过程中添加所需的任何目标。
对远程存储库的实际部署将由发布:执行目标完成。
劳伦