gpt4 book ai didi

java - maven中basedir的父目录如何设置为ant的basedir?

转载 作者:搜寻专家 更新时间:2023-11-01 02:47:01 24 4
gpt4 key购买 nike

背景:我需要使用 Maven 在 build.xml 文件中运行一个 ant 任务。所以我正在使用 maven-antrun-plugin 来做到这一点。

问题:
当我在 ant 中读取 basedir(在运行 pom 之后)时,它显示为 fldr1.fldr2.prjctNm,这是它的默认值(在两个回声中)。但是,我想为其设置父目录路径。 (例如:fldr1.fldr2)。我该怎么做。

Ant 文件单独执行此操作,因为它在标记中定义了 basedir="../。

pom.xml(位置:fldr1.fldr2.prjctNm)

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>

<executions>
<execution>
<id>default-cli</id>
<phase>package</phase>

<configuration>
<target>
<property name="basedir" value="../" />
<echo message="basedir path 1 : ${basedir}"/>
<ant antfile="build.xml" target="cleanAll" />
</target>
</configuration>

<goals>
<goal>run</goal>
</goals>

</execution>
</executions>

</plugin>
</plugins>
</build>

build.xml(位置:fldr1.fldr2.prjctNm)

<project name="RideUtilities" default="cleanAll" basedir="../">

<target name="cleanAll" depends="all"></target>

<target name="all" depends="init,build"></target>

<target name="init">

<echo message="basedir path 2 : ${basedir}"/>

<property name="dirs.base" value="${basedir}/RideUtilities" />
<property name="src" value="${dirs.base}\src" />
<property name="jarFile" value="RideUtilities.jar" />
</target>

<target name="build">
<echo> ---Building jar files using ${dirs.base} ---- </echo>
</target>

</project>

最佳答案

我不确定关于您到底需要什么的详细信息,但我能够使用 basedir 获得您想要的行为,如下所示:

pom.xml

<target>
<echo message="basedir path 1 : ${basedir}" />
<ant antfile="build.xml" target="echo-base-dir" inheritAll="false" />
</target>

build.xml

<project name="test" basedir="..">
<target name="echo-base-dir">
<echo>base dir=${basedir}</echo>
</target>
</project>

输出是:

C:\dev\JavaTests>mvn antrun:run [INFO] Scanning for projects... 
[INFO]
[INFO]
[INFO] Building test Strategy 3.0.7-SNAPSHOT
[INFO]
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (default-cli) @ test-test ---
[INFO] Executing tasks

main:
[echo] basedir path 1 : C:\dev\JavaTests

echo-base-dir:
[echo] base dir=C:\dev

[INFO] Executed tasks
[INFO]
[INFO] BUILD SUCCESS
[INFO]

[INFO] Total time: 1.005s
[INFO] Finished at: Wed Nov 06 09:59:36 EST 2013
[INFO] Final Memory: 8M/182M

C:\dev\JavaTests>

关键显然是 inheritAll=false。但也许这会扰乱您引用某些 Maven 属性的需要。

关于java - maven中basedir的父目录如何设置为ant的basedir?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19814682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com