5

Maven ビルドで antrun プラグインを使用して、一部の JSP ファイルのトークン@version@​​をアプリケーション バージョンに置き換えています。これは私がやっていることです:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <phase>compile</phase>
            <configuration>
                 <target>
                      <echo>${displayVersion}</echo>
                      <replace file="src/main/webapp/admin/decorators/default.jsp" token="@version@" value="${displayVersion}"/>
                 </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

私はmavenにパラメータとしてdisplayVersionを渡しています

mvn clean install -DdisplayVersion="Version-1.1"

そして、これはAntrun プラグインのコンソール出力です

[INFO] [antrun:run {execution: default}]
[INFO] [antrun:run {execution: default}]  
[INFO] Executing tasks  
main:  
[echo] 9.4_70  
[INFO] Executed tasks

プロパティは適切にエコーされていますが、私の JSP では置換されていません。@version@​​トークンは、実際の値ではなく {displayVersion} に置き換えられます

4

2 に答える 2

7

Aaron が提案したように Maven Resources Filtering を使用し、Maven Resource Plugin で区切り文字を設定します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <configuration>
      <delimiters>
        <!-- enable maven's standard delimiters -->
        <delimiter>${*}</delimiter>
        <!-- enable your @delimiters@ -->
        <delimiter>@</delimiter>
      </delimiters>
    </configuration>
</plugin>
于 2011-03-17T15:49:00.160 に答える
1

Maven リソース プラグインは、リソース内の変数を置き換えることができます。そのため、(jspc プラグインを使用してコンパイルするのではなく) JSP を配布する場合は、フィルタリングを有効にすることでリソースをコピーしている間、リソース プラグインに作業を任せることができます。

于 2011-03-17T14:44:47.357 に答える