替换Maven Antrun插件中的任务
我在maven构建中使用antrun插件将一些JSP文件中的令牌@version@替换为应用程序版本。 这就是我正在做的:替换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>
<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>