如何在子模块中禁用nexus-staging-maven-plugin

时间:2014-08-14 10:28:40

标签: maven nexus

我正在考虑用nexus-staging-maven-plugin替换maven-deploy-plugin。

现在我的项目的一些子模块(例如集成测试模块)不会部署到Nexus服务器。我曾经通过" maven.deploy.skip"来禁用这些模块的部署。属性。但是,我找不到与nexus-staging-maven-plugin类似的东西。是否有另一种方法可以使用此插件从部署中跳过单个模块?

我还尝试将插件绑定到伪阶段" none"正如here所述,但是在检查有效的POM时,仍然会注入插件的执行(我假设它是由于它取代现有部署插件的方式)。

3 个答案:

答案 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