如何让 Maven 子项目在部署时不寻找父项目?
Posted
技术标签:
【中文标题】如何让 Maven 子项目在部署时不寻找父项目?【英文标题】:How can I make maven subprojects not look for the parent project when they get deployed? 【发布时间】: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 可交付成果,因此没有父模块。我不知道该怎么做,老实说,我认为这有点牵强 必须是子模块? 【参考方案1】:通常,正如 khmarbaise 所说,您也应该部署父级,一切都很好。这是标准方法。
如果这是不可能的(我的意思是“不可能”而不仅仅是“我不喜欢它”或“它占用磁盘空间”),您可以使用 flatten Maven 插件来删除已部署 POM 的构建过程中的父级:
https://www.mojohaus.org/flatten-maven-plugin/
【讨论】:
兄弟,非常感谢。你是个天才。 flatten-maven-plugin 正是我一直在寻找的!以上是关于如何让 Maven 子项目在部署时不寻找父项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决IntelliJ在打包Maven项目时不打包配置文件