【问题标题】:How can I make maven subprojects not look for the parent project when they get deployed?如何让 Maven 子项目在部署时不寻找父项目?
【发布时间】:2021-11-09 14:38:19
【问题描述】:

在父 pom 中,我声明了模块。

`

<module>module1</module>
<module>module2</module>
<module>module3</module>
`

在每个子项目 pom 中,我都声明了父项

`

<groupId>com.group</groupId>
<artifactId>parent-module</artifactId>
<version>---</version>
`

在父pom中,由于项目相关的限制,我选择跳过父pom的部署

父pom: `

    <plugins>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>3.0.0-M1</version>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </build>

`

这意味着我在部署时只有三组 Jar 和 Pom。

  • childJar1
  • childPom1
  • childJar2
  • childPom2
  • childJar3
  • childPom3

但是,当我使用上面的任何一个jar时,我在使用过程中都会遇到错误,因为每个pom都声明了父模块并且父模块不存在(因为我选择跳过父模块的部署)。

有什么办法可以让每个子模块不声明或查找父模块?

【问题讨论】:

  • 在你的仓库中部署父节点有什么问题?您要解决的问题是什么?
  • 老板说可交付成果应该“完全”像 gradle 可交付成果,因此没有父模块。我不知道该怎么做,老实说,我认为这有点牵强
  • 必须是子模块?

标签: java maven maven-3 maven-plugin maven-deploy-plugin


【解决方案1】:

通常,正如 khmarbaise 所说,您也应该部署父级,一切都很好。这是标准方法。

如果这是不可能的(我的意思是“不可能”而不仅仅是“我不喜欢它”或“它占用磁盘空间”),您可以使用 flatten Maven 插件来删除已部署 POM 的构建过程中的父级:

https://www.mojohaus.org/flatten-maven-plugin/

【讨论】:

  • 兄弟,非常感谢。你是个天才。 flatten-maven-plugin 正是我一直在寻找的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 2019-12-22
  • 2013-02-09
相关资源
最近更新 更多