将nexus-staging-maven-plugin重定向到内部存储库

时间:2015-06-11 21:53:56

标签: maven

我有一个webjars项目,我想构建快照并将它们部署在本地(在我们的基础架构中),但是这些版本由webjars.org管理。

https://github.com/webjars/oscar/blob/15.0.0-RC1/pom.xml

我面临的问题是他们需要将nexus-staging-maven-plugin定义为其发布过程的一部分。因此,我希望尽可能地为他们量身定制POM,如果可能的话,只需通过命令行(或最坏情况,配置文件)进行自己的偏差。

通常,如果从头开始执行此操作,您可能会在配置文件中引入暂存插件,但我认为我没有这个选项。 (我可能不得不进行修改并与他们讨论。)

我以前从未使用过staging插件,所以这是我的第一次曝光,考虑到我正在尝试做的事情,这不是一个令人愉快的曝光。我觉得我在和系统作斗争。

我认为我有一些指定:

drawable/wallpaperpic

并将工件推送到正确的位置,但后来我无法弄清楚如何提供凭据。 (401未授权)我认为指定serverId可能有效,但没有。

-DsonatypeOssDistMgmtSnapshotsUrl=http://myurl

http://books.sonatype.com/nexus-book/reference/staging-deployment.html

然后我尝试创建一个配置文件,我会做这样的事情:

-DserverId=public-snapshots

但这没有用。有效的pom表明了这一点:

<profile>
    <id>disable-staging</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.5</version>
                <configuration combine.self="override">
                    <executions>
                        <execution>
                            <id>injected-nexus-deploy</id>
                            <phase>none</phase>
                        </execution>
                    </executions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

我无法解开部署阶段。

我想知道是否有人对这种情况下该怎么做有任何想法?

1 个答案:

答案 0 :(得分:3)

您可以使用Nexus Staging Plugin的属性skipNexusStagingDeployMojo来实现此目的:

mvn clean package deploy:deploy -DskipNexusStagingDeployMojo=true 
-DaltDeploymentRepository=snapshots::default::https://my.nexus.host/content/repositories/snapshots-local

显式调用package然后deploy:deploy非常重要,否则(仅调用mvn deploy时)默认执行maven-deploy-plugin会被Nexus Staging抑制插件(即使将跳过设置为true)。