当前位置: 首页 > 知识库问答 >
问题:

没有父pom依赖的API jar

单于淇
2023-03-14

我们的结构如下:

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

在我们的通用api中,我们定义了protobuf消息,还定义了帮助器类和类型,并希望其他人使用它们。

当我们向客户提供common-api.jar时,他们还需要两个父pom(pom2和pom1),以便在他们自己的maven服务器上重新部署它们。

一种向他们提供POM的方法,我们可以公开我们的maven存储库,至少是所需的部分,但不幸的是,目前这不是一个选项。

有没有办法自动创建公共api。jar,其中包含的pom不包含对父对象的依赖关系,但仍能正常工作?(父pom中定义的版本被写入pom,由父pom(pom1)中定义的版本替换,而不是例如${log4j.version})?

共有1个答案

燕青青
2023-03-14

是的,有一种方法,但不是处理maven构建的标准方法。您可以使用mvn帮助:effective pom-Doutput=xxx。xml
这将生成有效的POM,作为当前构建的xml,并将活动概要文件考虑在内。有效的POM由超级POM应用程序POM(s)设置组成。默认情况下,基于所选的打包类型(因此,基于应用程序POM中的一个元素),绑定到生命周期的xml内容插件。

我希望这有帮助。

 类似资料:
  • 我们有一个模块化项目,包含大约10个工件: 此外,一些工件之间存在依赖关系: 我们当前的设置如下所示: parent是包含父POM的工件 这个父POM定义了所有必要的依赖项(比如Spring、JPA等等)进来 我们所有的工件也都在中定义 我们的工件将父工件称为明显的父工件 只有父POM定义版本。其他所有的POM都没有 我们使用三个数字的版本控制方案: 例如: 问题是: 一旦我们更改了工件的版本(例

  • 我有一个带有子pom B、C和D的父pom A,在B、C和D中,我有相同类型的依赖项。 ie父Pom 儿童Pom 到目前为止,我已经尝试过编辑插件surefire,当试图排除子pom的测试范围时,它不起作用。 我的问题是,是否有一种方法可以将概要文件添加到父pom中,以排除所有子pom的类型测试jar的所有依赖项。谢谢

  • 我是使用maven和jenkins的新手。我正在尝试从父pom继承到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子波姆: 这是我如何尝试从父POM继承子POM中的依赖关系: 如果我在子POM中放置这些相同的依赖项,它会完美地工作。我使用jenkins在nexus中进行安装和部署。我使用的是maven-3.3.9。在jenkins中,我阅读了git中两个不同maven项目中

  • Maven插件及其在父pom中定义的依赖项,我不希望我的子pom包含该插件依赖项。 例如,如果有1个父级和100个子级,99个使用该插件并希望在一个子级中排除该插件。 我们如何才能实现这一目标?

  • 在我的父pom xml文件中,我声明了一些在大多数孩子的pom中使用的依赖项。 然而,在一个子pom中,我不使用这些依赖项,我想找到一种方法来排除它们(为了不被视为未使用的依赖项)。 现在,在子pom的依赖部分,我什么都没有!有什么想法吗?

  • 问题内容: 我是使用Maven和Jenkins的新手。我试图继承从父pom到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子POM: 这是我尝试从父POM继承子POM中的依赖项的方法: 如果我将相同的依赖项放在子POM中,则效果很好。我使用jenkins在nexus中进行安装和部署。我正在使用maven-3.3.9。在詹金斯,我从git中阅读了两个不同的Maven项目中的父