我有一个属性文件,比如说 my-file.properties。
除此之外,我的应用程序有几个配置文件,其中必须填写一些关于 my-file.properties 文件内容的信息。

我的文件。属性:

application.version=1.0 
application.build=42 
user.name=foo 
user.password=bar 

因此,在我的配置文件中,我会发现一些 ${application.version} , ${user.name}这将被它们在属性文件中的值所取代......

当我使用 Maven2 构建我的应用程序时,我只需要指定属性文件并说我的资源文件被过滤(如 this answer 到另一个问题)。但是,我需要仅使用 Ant 来实现相同的目的。

我已经看到 Ant 提供了一个 filter task .但是,它迫使我使用模式 @property.key@ (即 @user.name@ 而不是 #{user.name} )在我的配置文件中,这在我的情况下是 Not Acceptable 。

我该如何解决我的问题?

请您参考如下方法:

我想 expandproperties就是你要找的。这就像 Maven2's resource filters .

输入

例如,如果您有 目录(许多文件之一):

<link href="${css.files.remote}/css1.css"/> 

src/test.txt

过程

在我的 ANT 构建文件中,我们有这个:
<project default="default"> 
   <!-- The remote location of any CSS files --> 
   <property name="css.files.remote" value="/css/theCSSFiles" />      
   ... 
   <target name="ExpandPropertiesTest"> 
 
      <mkdir dir="./filtered"/> 
 
      <copy todir="./filtered"> 
         <filterchain> 
            <expandproperties/> 
         </filterchain>      
 
         <fileset dir="./src" /> 
      </copy> 
   </target> 
</project> 

build.xml

输出

*当您运行 时展开PropertiesTest 目标您的 中将包含以下内容已过滤 目录: *
    <link href="/css/theCSSFiles/css1.css"/> 

过滤/测试.txt


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!