Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换Maven Antrun插件中的任务_Maven_Maven Antrun Plugin - Fatal编程技术网

替换Maven Antrun插件中的任务

替换Maven Antrun插件中的任务,maven,maven-antrun-plugin,Maven,Maven Antrun Plugin,我在maven构建中使用antrun插件将一些JSP文件中的令牌@version@替换为应用程序版本。 这就是我正在做的: <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>

我在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>
虽然属性被正确地回显,但在我的JSP中它没有被替换。
@version@标记被{displayVersion}替换,而不是它的实际值。

可以替换资源中的变量;因此,如果您交付JSP(而不是使用jspc插件编译JSP),您可以简单地让资源插件在复制资源的同时完成工作。

使用Aaron建议的Maven资源过滤,并在Maven资源插件中:

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

org.apache.maven.plugins
maven资源插件
2.5
${*}
@

在您发布的antrun配置中,您实际使用的是
value=“${display}”
而不是
value=“${displayVersion}”
,这是原始代码中的错误还是剪切粘贴问题?这是一个错误。。。我的错。我编辑了这个问题来纠正sameAaron,我知道Maven资源过滤。但是我正在从AMT迁移到MAVEN,我使用的令牌是@--@version@并且我相信对于MAVEN资源筛选,我需要将其更改为${version}现在,有很多文件需要替换这个令牌,我无法将其设置为${version}。有什么方法可以让我用Maven Resource FilteringTry Sean的解决方案过滤@version@吗。您使用的是哪个IDE?在Eclipse中,您可以对所有文件进行全局搜索“n”替换。
<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>