我们有以下结构:
myRootFolder
- pom.xml (pom1 - parent pom defining modules)
-core-app/
- pom.xml
-core-libs/
- pom.xml (pom2 - defining modules and having pom1 as parent pom)
- common-api/
- pom.xml (pom3 - the api with pom2 as parent pom)
- other-lib/
- pom.xml
在我们的common-api中,我们定义了protobuf消息,以及我们定义并希望其他人使用的辅助类和类型。
当我们向客户提供common-api.jar时,他们还需要两个父pom(pom2和pom1),以便在他们自己的maven服务器上重新部署它们。
一种向他们提供poms的方法,我们可以将我们的maven存储库公开,至少需要部分,但不幸的是,目前不是一种选择。
有没有办法自动创建common-api.jar,其中包含pom不包含对父(s)的依赖但仍然正常工作? (在父pom中定义的版本被写入pom,由父pom(pom1)中定义的版本替换,而不是例如${log4j.version}
)?
答案 0 :(得分:0)
是的,有办法但不是处理maven构建的标准方法。
你可以使用
mvn help:effective-pom -Doutput=xxx.xml
这会生成有效的POM作为当前构建的XML,并将活动的配置文件考虑在内。
有效POM由Super POM +应用程序POM + settings.xml内容+默认情况下基于所选包装类型绑定到生命周期的插件组成(因此,基于应用程序POM中的一个元素)。
我希望这会有所帮助。