没有父pom依赖的API jar

时间:2016-04-26 07:12:01

标签: java maven

我们有以下结构:

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})?

1 个答案:

答案 0 :(得分:0)

是的,有办法但不是处理maven构建的标准方法。 你可以使用
  mvn help:effective-pom -Doutput=xxx.xml
 这会生成有效的POM作为当前构建的XML,并将活动的配置文件考虑在内。 有效POM由Super POM +应用程序POM + settings.xml内容+默认情况下基于所选包装类型绑定到生命周期的插件组成(因此,基于应用程序POM中的一个元素)。

我希望这会有所帮助。