有没有办法在我的pom.xml中获取${basedir}
的父目录?目前我有
<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory>
但我需要访问basedir的父目录,因为我的资源位于不同的maven项目中。
如何获取$ {basedir}
的父文件夹?
答案 0 :(得分:8)
${project.basedir}/../
但是,我试图避免访问不同模块中的资源。我建议使用unpack goal of the maven-dependency-plugin。
答案 1 :(得分:6)
在孩子们中:
<properties>
<main.basedir>${project.parent.basedir}</main.basedir>
</properties>
在孙子孙女中:
<properties>
<main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>
答案 2 :(得分:4)
请不要试图超越基础,因为它被认为是一种非常糟糕的做法。
即使你现在成功了,它也将成为解决方法的开始,试图与Maven作战。最终,Maven将获胜。
如果开发人员检出带有pom.xml
的目录,它应该能够使用mvn verify
运行项目,而不会引用其他目录。
如果这些是共享资源,请将其作为单独的项目并将其作为依赖项(搜索多模块项目)包含在内。或者使用maven-remote-resources-plugin将这些资源提取到项目中。
答案 3 :(得分:1)
我需要将MainDirectory / Submodule / target /中生成的zip移动到MainDirectory / target /。 我尝试了所有地方的所有解决方案,但无法解决。我终于在子模块的pom.xml中尝试使用Ant插件进行复制,如下所示:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>copy to parent target</id> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <copy todir="../target/" overwrite="true" flatten="true"> <fileset dir="${basedir}/target/"/> </copy> </target> </configuration> </execution> </executions> </plugin>