Maven 使用Ant脚本将令牌从一个文件替换到另一个文件
我正在尝试使用下面的ant的filterchain和replacetoken将几个令牌从一个资源包(.messages文件)替换到另一个资源包Maven 使用Ant脚本将令牌从一个文件替换到另一个文件,maven,ant,jenkins,Maven,Ant,Jenkins,我正在尝试使用下面的ant的filterchain和replacetoken将几个令牌从一个资源包(.messages文件)替换到另一个资源包 <copy file="dev.properties" tofile="messages.properties"> <filterchain> <replaceregex pattern="\$\{" replace="{" /> <filterreader classname="org.
<copy file="dev.properties" tofile="messages.properties">
<filterchain>
<replaceregex pattern="\$\{" replace="{" />
<filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
<param type="propertiesfile" value="properties.txt"/>
<param type="tokenchar" name="begintoken" value="{"/>
<param type="tokenchar" name="endtoken" value="}"/>
</filterreader>
</filterchain>
</copy>
messages.properties
server.name=myServerName
server.ip=127.0.0.1
SERVER_NAME="@server.name@"
SERVER_IP="@server.ip@"
请注意,messages.properties是部署到服务器的内容。它还有其他对所有环境都通用的条目。我正在使用Jenkins将项目部署到不同的环境中。我的计划是将此ANT目标/任务称为部署后步骤,在messages.properties中替换特定于环境/服务器的变量,如port、name等,然后使用Jenkins构建app server 你可以试试这个:<project name="MyProject" default="useregex" basedir=".">
<target name="useregex">
<property file="dev.properties"/>
<replace file="messages.properties" token="@server.name@" value="${server.name}" />
<replace file="messages.properties" token="@server.ip@" value="${server.ip}" />
</target>
</project>
这对我来说很有用。我希望过滤链上的人能给我一个更好的答案
<target name="replaceLocalTokens">
<property file="local.properties"/>
<replace file="messages.properties" token="@build-number@" value="${build.number}"/>
<replace file="messages.properties" token="@build-date@" value="${build.date}"/>
<replace file="messages.properties" token="@server-name@" value="${server.name}"/>
<replace file="messages.properties" token="@ssl-port@" value="${ssl.port}"/>
</target>
您使用ant代替的是什么?该项目是作为Maven项目启动的,具有Maven结构。由于公司的安全性阻止了少数网站的下载,Maven nature目前已被禁用。该项目是在jdeveloper12c中构建的。我们通过Jenkin部署它,Jenkin使用JDeveloper项目相关文件(.jws等…)来构建项目。詹金斯是否需要任何插件来替换代币?作为部署前的一个步骤,我可以创建/使用Maven目标来替换令牌吗?谢谢Technext。我是从另一条线得到的;我希望避免在每个代币上都加上“替换”。很高兴听到这个消息!:)你能把你的解决方案作为一个答案贴出来,让其他人也能从中受益吗?好吧,这和我的建议有什么不同我想你误解我了。我说的是,我从另一个线程获得了您建议的解决方案,有人会使用filterchain提供一个干净的解决方案。:)