Java 自动添加多个“;章节;去舱单?

Java 自动添加多个“;章节;去舱单?,java,ant,manifest,Java,Ant,Manifest,我正在使用ant为.jar生成MANIFEST.MF,我需要根据目录中的文件列表添加多个MANIFEST块。但是,我需要在构建时自动执行此过程,因为列表将在开发和部署之间更改 例如: <manifest file="MANIFEST.MF"> <foreach files="./*"> <section name="section"> <attribute name="Attribute-Name" value="$file"/&

我正在使用ant为.jar生成
MANIFEST.MF
,我需要根据目录中的文件列表添加多个MANIFEST
块。但是,我需要在构建时自动执行此过程,因为列表将在开发和部署之间更改

例如:

<manifest file="MANIFEST.MF">
  <foreach files="./*">
    <section name="section">
      <attribute name="Attribute-Name" value="$file"/>
    </section>
  </foreach>
</manifest>

我已经看过Ant contrib的
foreach
,但在本例中它似乎不起作用

这可能吗?

您可以使用


它将生成此清单:

清单版本:1.0
创建人:ApacheAnt 1.7

名称:章节
属性名称:值

名称:节/class1.class
第二个属性名称:otherValue

您可以维护两个不同的自定义任务来处理不同的情况,并在适当的时候调用适当的任务


对于“自动”管理:

<target name="manifest-generation">
    <foreach param="file" target="manifest">
        <path>
            <fileset dir=".">
                <include name="**/*.class"/>
            </fileset>
        </path>
    </foreach>
</target>

<target name="manifest">
    <manifest file="MANIFEST.MF" mode="update">
        <section name="${file}">
            <attribute name="Attribute-Name" value="value"/>
        </section>
    </manifest>
</target>


sections是什么意思?能否在传入目录中插入两个输入文件的示例清单输出?(我特别想知道您是希望每个文件的节名相同,还是其他什么?)如果这不够灵活,那么您很可能需要编写自己的自定义任务是的,我知道我可以手动完成,但这不是我要问的。我问的是如何根据文件系统中的文件自动添加多个节。那么“自动”是什么意思?你想要什么结果?谢谢科林!经过一些调整,我已经按照我的需要工作了。@digitala,很高兴它工作了。但是要小心使用
mode=“update”
您可能希望不时删除清单文件(或者保留旧数据)
<target name="manifest-generation">
    <foreach param="file" target="manifest">
        <path>
            <fileset dir=".">
                <include name="**/*.class"/>
            </fileset>
        </path>
    </foreach>
</target>

<target name="manifest">
    <manifest file="MANIFEST.MF" mode="update">
        <section name="${file}">
            <attribute name="Attribute-Name" value="value"/>
        </section>
    </manifest>
</target>