gpt4 book ai didi

java - 使用ANT根据包名动态生成JAR文件

转载 作者:行者123 更新时间:2023-12-01 17:40:44 25 4
gpt4 key购买 nike

我当前的构建文件具有以下重复任务:

<jar jarfile="${build.lib}/${prefix}-foo.jar">
<fileset dir="${build.classes}">
<include name="com/a/c/foo/**"/>
</fileset>
</jar>
<jar jarfile="${build.lib}/${prefix}-bar.jar">
<fileset dir="${build.classes}">
<include name="com/a/c/bar/**"/>
</fileset>
</jar>

...等等。问题是必须为每个新包或每个新子项目修改 build.xml。在我工作的地方,这种情况经常发生。

我想用基于“根”包动态生成 JAR 及其文件名的逻辑来替换它。因此,例如,我可以将根包设置为 com/a/c,并且直接在该包下的所有包都将获得自己的 JAR。请注意,“foo”或“bar”下的所有包都只是“foo.jar”或“bar.jar”的一部分。

我查找了 ANT 的循环逻辑任务。我在 ant-contrib 和 JWare/AntXtras 中都找到了一个,但我无法让其中任何一个按预期工作。

最佳答案

我不知道如何循环并查找所有包名称,但您可以使用宏来避免代码重复。

我没有尝试过,但它可以工作

<macrodef name="build_jar">
<attribute name="name"/>
<sequential>
<jar jarfile="${build.lib}/${prefix}-@{name}.jar">
<fileset dir="${build.classes}">
<include name="com/a/c/@{name}/**"/>
</fileset>
</jar>
</sequential
</macrodef>

<target name="build_foo">
<build_jar name="foo"/>
</target>

<target name="build_bar">
<build_jar name="bar"/>
</target>

关于java - 使用ANT根据包名动态生成JAR文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928896/

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