2017-10-17 63 views
2

我有一个Java项目。它有一个pom.xml设置,我使用mvn deploy将新工件部署到内部公司Nexus。一切工作正常。在部署期间/之后获取Maven部署URL

但是...我正在将此应用程序集成到CI/CD系统中。因此,基本上我需要的是以编程方式/自动知道此工件的部署位置(工件的确切Nexus URL),以便将其作为CI/CD系统下一步的输入。

我知道使用Maven时通常不需要这些。但是我能说什么呢,我需要这个URL出现在显示这个神器的网页上,以及与之相关的一些其他信息,比如运行了哪些测试,谁创建了它,何时提交它建立的存储库等...

因此...除了手动解析pom.xml文件以尝试重新创建URL之外,还有一种很好的,干净的方式来获取此信息。像mvn give-me-the-url-to-which-you-would-deploy-if-i-were-to-run-deploy。 :)

回答

2

一个直接的,但有点hacky的方式将是阅读Maven日志文件。它包含像

Uploaded: http://ik-re1.continentale.loc:8082/nexus/content/repositories/snapshots/de/continentale/spu/rrep-pjava-index/2.3.4-SNAPSHOT/rrp-pjav-index-2.3.4-20170901.115031-18-sources.jar (202 KB at 2459.3 KB/sec) 

这些行会告诉你确切的URL,但你需要解析一个文本文件。

+1

是的,我最终这样做了,使用tee将Maven的输出重定向到日志文件。但这仍然是一个骇人听闻的解决方案。但是,由于似乎没有更好的,适当的解决方案,这将不得不做。谢谢。 – morgoth84