我正在考虑用nexus-staging-maven-plugin替换maven-deploy-plugin。
现在我的项目的一些子模块(例如集成测试模块)不会部署到Nexus服务器。我曾经通过" maven.deploy.skip"来禁用这些模块的部署。属性。但是,我找不到与nexus-staging-maven-plugin类似的东西。是否有另一种方法可以使用此插件从部署中跳过单个模块?
我还尝试将插件绑定到伪阶段" none"正如here所述,但是在检查有效的POM时,仍然会注入插件的执行(我假设它是由于它取代现有部署插件的方式)。
答案 0 :(得分:2)
您可以将给定子模块的配置属性skipNexusStagingDeployMojo
设置为true。查看the Nexus book chapter about deployment to staging中记录的更多配置属性。
答案 1 :(得分:0)
面对类似的问题。对我有用的解决方案是在需要从部署任务中排除的模块中添加具有skip为true的部署插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
答案 2 :(得分:0)
我发现解决nexus-staging-maven-plugin限制的最简单方法是将您不想部署的任何模块隔离到单独的Maven配置文件中,并在部署发生时将其排除。示例:
<profile>
<id>no-deploy</id>
<!--
According to https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin
skipNexusStagingDeployMojo may not be set to true in the last reactor module. Because we don't
want to deploy our last module, nor a dummy module, we simply omit the relevant modules when
a deploy is in progress.
-->
<activation>
<property>
<name>!deploy</name>
</property>
</activation>
<modules>
<module>test</module>
<module>benchmark</module>
</modules>
</profile>
在上面的示例中,我避免构建和部署“测试”和“基准”模块。如果要运行单元测试而不部署它们,请使用单独的运行:
mvn test
mvn -Ddeploy deploy