从 Maven 获取 ${basedir} 的父目录

  • 本文关键字:basedir Maven 获取 java maven
  • 更新时间 :
  • 英文 :


有没有办法在我的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 将这些资源拉入您的项目中。

我需要将MainDirectory/

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>

最新更新