有没有办法${basedir}
在我的 pom.xml 中获取父目录?目前我有
<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory>
但我需要访问 basedir 的父目录,因为我的资源位于不同的 Maven 项目中。
如何获取 $ 的父文件夹{basedir}
?
${project.basedir}/../
但是,我尽量避免访问不同模块中的资源。我建议使用maven-dependency-plugin 的 unpack 目标。
在孩子们:
<properties>
<main.basedir>${project.parent.basedir}</main.basedir>
</properties>
在孙辈中:
<properties>
<main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>
请不要试图走出 basedir,因为这被认为是一种非常糟糕的做法。即使你现在成功了,这也将是解决方法的开始,尝试与 Maven 抗争。最终,Maven 将获胜。如果开发人员使用 签出目录pom.xml
,它应该能够在mvn verify
不引用其他目录的情况下运行项目。
如果这些是共享资源,请将其作为一个单独的项目并将其包含为依赖项(搜索多模块项目)。或者使用maven-remote-resources-plugin将这些资源提取到您的项目中。
我需要将 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>