gpt4 book ai didi

java - 如何使用 ant 脚本复制属性文件中定义的文件名

转载 作者:行者123 更新时间:2023-12-01 18:36:27 26 4
gpt4 key购买 nike

我有一个名为 test.properties 的属性文件。它包含如下文件名。

  • web/WEB-INF/a.java
  • web/b.jsp

我想从属性文件test.properties中读取这些文件名,并将这些文件名复制到一个目录中。请帮我解决这个问题。堆栈溢出是现在唯一的希望。提前谢谢。

到目前为止,我想解决这个问题是加载属性文件,如下所示

<loadfile property="path" srcFile="${basedir}/test.properties"/>

但是如何解析属性“路径”内容?

最佳答案

要从文件加载属性,您应该使用 loadproperties任务

更新

我修改了答案,添加了从文本文件而不是属性文件读取的第二个示例。它使用嵌入式 groovy脚本读取文件并将其复制到目标目录。

我警告不要使用 ant-contrib 。它非常流行,但根据我的经验,如果您需要执行复杂的处理,那么最好使用普通的编程语言。 Javascript 是一个明显的选择(不需要额外的 jar),但我喜欢 groovy,因为它与 ANT 的出色集成。

示例1:使用属性文件

├── build.properties
├── build.xml
└── src
├── a.java
└── b.jsp

构建.属性

file1=src/a.java
file2=src/b.jsp

build.xml

<project name="demo" default="copy">

<loadproperties srcFile="build.properties"/>

<target name="copy">
<copy file="${file1}" todir="target" verbose="true"/>
<copy file="${file2}" todir="target" verbose="true"/>
</target>

</project>

示例2:使用文本文件

├── build.txt
├── build.xml
└── src
├── a.java
└── b.jsp

build.txt

src/a.java
src/b.jsp

build.xml

<project name="demo" default="copy">

<target name="bootstrap">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/groovy-all.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.2.1/groovy-all-2.2.1.jar"/>
</target>

<target name="copy">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
<groovy>
new File("build.txt").eachLine {
ant.copy(file:it, todir:"target", verbose:true)
}
</groovy>
</target>

</project>

注释:

  • 运行“ant bootstrap”以从 Maven Central 安装第 3 方 groovy jar。

关于java - 如何使用 ant 脚本复制属性文件中定义的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21798049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com