17

Maven プロパティ (プロファイルで定義) を Antrun 実行に渡そうとしています:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <dependencies>
        <!-- ... these are ok -->
    </dependencies>
    <executions>
        <execution>
            <configuration>
                <target>
                    <property name="ant_destDir" value="${destDir}" />
                    <property name="ant_serverDeploy" value="${serverDeploy}" />
                    <property name="ant_deployDir" value="${deployDir}" />
                    <property name="ant_userDeploy" value="${userDeploy}" />
                    <property name="ant_passwordDeploy" value="${passwordDeploy}" />
                    <!-- correct task definitions for sshexec and scp -->
                    <sshexec host="${serverDeploy}" username="${userDeploy}" 
                            password="${passwordDeploy}" trust="yes" 
                            command="some command" />
                    <scp remoteTodir="${userDeploy}@${serverDeploy}:${destDir}" 
                            password="${passwordDeploy}" trust="yes" sftp="true">
                        <fileset dir="${deployDir}" includes="*.jar" />
                    </scp>
                    <sshexec host="${serverDeploy}" username="${userDeploy}" 
                            password="${passwordDeploy}" trust="yes" 
                            command="some command" />
                </target>
            </configuration>
            <phase>install</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

次のように、プロパティはプロファイルで定義され、さまざまなサーバーでの展開を可能にします (これが最善の方法ではないことはわかっていますが、これがここでの方法です)。

<profile>
    <id>aprofile</id>
    <properties>
        <property name="serverDeploy" value="somevalue" />
        <property name="userDeploy" value="someuser" />
        <property name="passwordDeploy" value="somepassword" /> 
        <!-- and so on -->
    </properties>
</profile>

私の問題は、Maven プロパティを ant プラグインで動作させることができないことです。ant にタスクを追加して、<echoproperties>所有しているプロパティを確認しようとしましたが、Maven プロパティの痕跡はありません。Maven で定義されたプロパティを使用することは可能ですか、それとも別のアプローチを使用する必要がありますか? どんな提案でも大歓迎です。

編集:最初の回答に従ってスクリプトを変更しましたが、まだ機能しません

4

3 に答える 3

4

少なくともインライン化された ant スクリプトを実行している場合は、ほとんどのプロパティが自動的に ant に渡されます。一部のプロパティの名前が変更されます。「mvn -X」を実行すると、antrun プラグインがすべての変数マッピングのリストを ant に出力することをお勧めします (basedir が project.basedir になるなど)。

于 2014-05-30T18:41:24.180 に答える