有没有办法在我的pom中获取${basedir}
的父目录.xml?目前我有
<earSourceDirectory>${basedir}/EAR/src/main/resources</earSourceDirectory>
但我需要访问 basedir 的父目录,因为我的资源位于不同的 maven 项目中。
如何获得$ {basedir}
的父文件夹?
在孩子中:
<properties>
<main.basedir>${project.parent.basedir}</main.basedir>
</properties>
在孙子孙女中:
<properties>
<main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>
${project.basedir}/../
但是,访问不同模块中的资源是我尽量避免的。我建议使用 maven-dependency-plugin 的解包目标。
请不要试图走出基础,因为这被认为是一种非常糟糕的做法。即使你现在成功了,这也将是变通方法的开始,试图与Maven战斗。最终,Maven将获胜。如果开发人员签出带有pom.xml
的目录,它应该能够使用mvn verify
运行项目,而无需引用其他目录。
如果这些是共享资源,请将其设置为单独的项目,并将其作为依赖项包含在内(搜索多模块项目)。或者使用 maven-remote-resources-plugin 将这些资源拉入您的项目中。
Submodule/target/中生成的zip移动到MainDirectory/target/。我尝试了来自各地的所有解决方案,但我无法解决。我终于尝试在子模块的pom中尝试了Ant插件.xml复制如下:
<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>