gpt4 book ai didi

maven - 如何在子模块 pom 中获取 super pom basedir?

转载 作者:行者123 更新时间:2023-12-03 22:36:56 26 4
gpt4 key购买 nike

我想在我的 Maven 项目中定义一个本地存储库。

我有一个 super pom 和几个子模块。我的文件结构是:

/root
/repository
/child
pom.xml
pom.xml

在我的 super pom 中我定义:
<repository>
<id>my-local-repo</id>
<url>file://${basedir}/repository</url>
</repository>

问题是在我的子 pom 中,在我的 super pom 中定义的存储库是指/root/child/repository ,因此无法找到依赖项......

有没有办法定义始终相对于 super pom 的路径?

如果没有,解决问题的最佳方法是什么?

最佳答案

在这种情况下,首先你可以尝试 ${project.parent.basedir} .
看起来它不起作用,简单(和 native )的方法是使用完整路径(/root/...)或尝试相对路径(../)而不是使用 ${basedir} 变量。

但对我来说,一个很好的解决方案是将这个配置外部化到一个属性文件中。
您可以使用属性-maven-plugin (http://mojo.codehaus.org/properties-maven-plugin/plugin-info.html)。

使用这个插件,可以像在 pom.xml 中定义的属性一样读取属性文件上定义的属性。

从插件站点:

如果您有一个名为 teams.properties 的属性文件,其中包含以下内容:

toronto=raptors
miami=heat

与在 pom.xml 中声明以下内容相同:
<properties> 
<toronto>raptors</toronto>
<miami>heat</miami>
</properties>

关于maven - 如何在子模块 pom 中获取 super pom basedir?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com