Java 如何获得;有效pom“;来自nexus rest API(或以编程方式)

Java 如何获得;有效pom“;来自nexus rest API(或以编程方式),java,rest,maven,pom.xml,nexus,Java,Rest,Maven,Pom.xml,Nexus,我对maven工件的有效pom感兴趣,最好是通过NexusRESTAPI。 我知道有一种方法可以通过maven帮助插件获得它 mvn help:effective-pom 然而,我需要一个webapp中的有效pom——实际上是一个confluence插件(它是一个OSGI捆绑包)中的pom,而且afaik在这种情况下我不能运行maven插件。 我的“插件”有一个查询nexus的rest客户端——因此我可以轻松获取“正常”pom,但无法获取有效的pom,不过我可能错过了一个nexus rest资

我对maven工件的有效pom感兴趣,最好是通过NexusRESTAPI。 我知道有一种方法可以通过maven帮助插件获得它

mvn help:effective-pom
然而,我需要一个webapp中的有效pom——实际上是一个confluence插件(它是一个OSGI捆绑包)中的pom,而且afaik在这种情况下我不能运行maven插件。 我的“插件”有一个查询nexus的rest客户端——因此我可以轻松获取“正常”pom,但无法获取有效的pom,不过我可能错过了一个nexus rest资源

我们正在使用 “Sonatype Nexus Professional”版本2.11.4-01,api版本2.11.4-01


我可以用Java编程获得有效的pom,但我不知道如何实现它。我“需要”有效的pom,因为它包含到maven生成的站点的链接,该站点是在发布过程中构建的。我希望有一个(confluence)宏来创建到nexus上站点的链接。

我认为有两种方法可以获得有效的pom:

1. Request the effective pom artifact from Nexus (if it was produced and deployed previously)

2. Request the sources artifact from Nexus and execute over the source code:
mvn help:effective-pom > my_effective_pom.xml

Nexus被设计为一种存储服务,它只存储项目,不修改项目。我认为,鉴于
settings.xml
和环境变量会影响结果,如果不调用Maven本身,就无法实际构建有效的POM。显而易见的问题是:为什么你首先需要有效的POM?顺便问一下。。。在sonatype支持中,我也问了同样的问题。答案是:这是不可能的,没有restapi。您需要使用maven帮助插件来获得有效的pom,或者使用它使用的类。回想起来,我在org.apache.maven.repository.internal.DefaultModelResolver@biziclop上编辑了最初的文章,解释了我想要有效pom的原因。(它包含到maven生成的站点的链接。)