maven发布:准备不使用发布版本部署项目

Sum*_*ani 4 maven-release-plugin

我有一个包含多个项目的扁平项目结构.我使用Nexus作为内部存储库,使用SVN进行源代码管理.我能够部署SNAPSHOT我的项目的构建.

在我的父pom中,我添加了maven release插件:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.1</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

和分发信息:

<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>
Run Code Online (Sandbox Code Playgroud)

当我这样做时mvn release:prepare,发布版本的工件不会被部署到repo.因此,如果我有一个项目A依赖于项目B.项目A无法使用发布版本获取B的工件.

小智 11

发布:默认情况下准备调用"clean"和"verify"目标,这些目标只是尝试编译并运行测试.因此,没有任何内容部署到您的远程存储库,也不会安装在本地存 要使用新版本处理多模块项目中的依赖项,您需要在发布期间在本地存储库中安装内容:prepare,因此使用prepareGoals属性将默认目标更改为"clean"和"install".

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.1</version>
    <configuration>
       <preparationGoals>clean install</preparationGoals>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

您可以在构建期间添加所需的任何目标.

对远程存储库的实际部署将由发布:执行目标完成.

洛朗