问题 从maven获取$ {basedir}的父目录


有没有办法获取父目录 ${basedir} 在我的pom.xml中?目前我有

<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory> 

但我需要访问basedir的父目录,因为我的资源位于不同的maven项目中。

如何获取$的父文件夹{basedir}


7499
2017-10-22 07:35


起源

你有没有尝试过 ../${project.basedir}/? - Andrew Logvinov
是..但没有工作......我试着打印<echo message =“../$ {project.basedir}”/>输出为[echo] ../C:\Users\User\Documents\NetBeansProjects \ MavenEARExample \ MavenEARExample耳 - Surendran Duraisamy


答案:


${project.basedir}/../

但是,我试图避免访问不同模块中的资源。我建议使用 解压缩maven-dependency-plugin的目标


7
2017-10-22 08:11



我只得到输出为C:\ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ MavenEARExample-ear /../其中我期望父目录C:\ Users \ User \ Documents \ NetBeansProjects \ MavenEARExample \ - Surendran Duraisamy


请不要试图超出基础,因为它被认为是一种非常糟糕的做法。 即使你现在成功,它也将成为解决方法的开始,试图与Maven作战。最终,Maven将获胜。 如果开发人员使用a检出目录 pom.xml,它应该能够运行项目 mvn verify 没有任何引用其他目录。

如果这些是共享资源,请将其作为单独的项目并将其作为依赖项(搜索多模块项目)包含在内。或者使用 行家-远程资源-插件 将这些资源提取到您的项目中。


4
2017-10-23 17:37



谢谢罗伯特,这是一个明确的解释.. - Surendran Duraisamy


在孩子们:

<properties>
    <main.basedir>${project.parent.basedir}</main.basedir>
</properties>

在孙子孙女:

<properties>
    <main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>

4
2017-08-13 15:41



在Maven 3之后已经过时了 - tribbloid
@tribbloid在Maven 3中添加什么而不是$ {project.parent.parent.basedir}? - Aguinore