Pertanyaan Bagaimana mengatur direktori induk dari basedir di maven sebagai basedir dari semut?


Latar Belakang :  Saya harus menjalankan tugas semut dalam file build.xml menggunakan maven. Jadi saya menggunakan maven-antrun-plugin untuk melakukan ini.

Pertanyaan : 
Ketika saya membaca basedir di semut (setelah menjalankan pom) ini akan ditampilkan sebagai fldr1.fldr2.prjctNm yang merupakan nilai defek (dalam kedua gema). Tapi, saya ingin mengatur path direktori induk ke sana. (misalnya: fldr1.fldr2). Bagaimana saya bisa melakukan ini.

File semut saja melakukan ini karena mendefinisikan basedir = "../ di tag.

pom.xml (lokasi: 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 (location: 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
2017-11-06 14:28


asal


Jawaban:


Saya tidak yakin ada cukup detail tentang apa yang sebenarnya Anda butuhkan, tetapi saya bisa mendapatkan perilaku yang Anda inginkan dengan berdasarkan sebagai berikut:

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>

Outputnya adalah:

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>

Kuncinya jelas itu inheritAll = false. Tapi mungkin itu akan mengacaukan kebutuhan Anda untuk referensi beberapa properti Maven.


4
2017-11-06 14:58