2

archetype-resources>src>main フォルダー内のファイルにパラメーターを渡したい。したがって、archetype-metadata.xml で必要なプロパティを次のように宣言しました。

<requiredProperties>
    <requiredProperty key="myParam">
      <defaultValue>default-value</defaultValue>
    </requiredProperty>
  </requiredProperties>

プロトタイプ ファイルで ${myParam} を使用しましたが、その値は置き換えられません。なんで?

プロトタイプ プロジェクトの pom.xml でカスタム値を使用すると、結果のプロジェクトで ${myParam} の値が myValue に置き換えられます。正常に動作しますが、prototype フォルダー内のファイルに対しては同じように動作しません。なぜ?

4

1 に答える 1

5

ファイルを Velocity テンプレートとして使用する必要があることを Velocity エンジンに伝える必要があります (ファイル内で見つかったプロパティを実際に置き換えるため)。archetype-metadata.xmlこれを行うには、ファイルを拡張してfileSet.

正確なフォルダー構造と問題のファイルの名前はわかりませんが、次の行に沿った何かが機能するはずです。

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="basic">
    <requiredProperties>
        <requiredProperty key="myParam">
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
    </requiredProperties>
    <fileSets>
        <fileSet filtered="true" packaged="false">
            <directory>src/main</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </fileSet>
    </fileSets>
</archetype-descriptor>

基本的に、上記は の下にすべてのファイルを含めるように指示してsrc/mainおり、重要な部分はfiltered=trueすべてのプロパティが置き換えられることです。

于 2012-08-30T09:50:01.797 に答える