4

背景: maven を使用して build.xml ファイルで ant タスクを実行する必要があります。だから私はこれを行うために maven-antrun-plugin を使用しています。

質問 :
(pom を実行した後) ant で basedir を読んでいると、(両方のエコーで) デフォルト値である fldr1.fldr2.prjctNm として表示されます。しかし、親ディレクトリのパスをそれに設定したい。(例: fldr1.fldr2)。これどうやってするの。

タグで basedir="../ を定義しているため、Ant ファイルだけでこれを行います。

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>
4

1 に答える 1

4

正確に何が必要かについて十分な詳細があったかどうかはわかりませんが、次のように 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 プロパティの一部を参照する必要性が台無しになる可能性があります。

于 2013-11-06T14:58:30.033 に答える