我已经开始开发一个项目,目前该项目从 Eclipse 项目生成一个整体 JAR 文件。基本上,有一个 Ant 脚本,它会在 Eclipse Java Builder 运行时运行,并获取 Eclipse Java Builder 的输出(.class 文件)并将其打包到 JAR 文件中。然后将该 JAR 文件放置在公共目录中,以便其他工具可以获取它以进行最新版本。
这对团队来说效果很好,所以我不想对其进行太多更改,但是,该 JAR 中有很多不必要的文件,使其比需要的大得多。我想知道是否有可能,在与我上面描述的相同类型的框架(Eclipse + Ant)中,将大 JAR 文件分割成更小、更易于管理的 JAR 文件。例如:
com.company.project.thing1
com.company.project.thing2
com.company.project.thing3
所有这三件事都打包到 JAR 中。相反,我只希望 thing1 和 thing2 位于一个 JAR 文件中,而 thing3 位于第二个 JAR 文件中。
我确实意识到我可以有单独的项目,但我想看看是否有可能将项目组合在一起,因为这确实有意义。任何帮助将非常感激。
谢谢。
根据请求,Ant 构建脚本(我只包含 jar 任务 - 另一个只是一个干净的任务):
<target name="jar" description="Deploys the JAR file." depends="clean">
<mkdir dir="${dir.dist}">
<!-- Build the JAR file containing the classes. -->
<jar destfile="${dir.dist}/${build.name}.jar">
<!-- Generate the MANIFEST.MF file. -->
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Release-Version" value=${version}" />
</manifest>
<zipfileset dir="${dir.build}" />
</jar>
</target>
如果你使用includes
的设施zipfileset
(还有一些macrodef
magic),你最终可能会得到类似下面的结果:
<macrodef name="packaging">
<attribute name="package"/>
<sequential>
<jar destfile="${dir.dist}/${build.name}-@{package}.jar">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Release-Version" value=${version}"/>
</manifest>
<zipfileset dir="${dir.build}" includes="com/acme/@{package}/**/>
</jar>
</sequential>
</macrodef>
<packaging package="package1"/>
<packaging package="package2"/>
<packaging package="package3"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)