从 Eclipse 项目创建多个 JAR

2024-02-22

我已经开始开发一个项目,目前该项目从 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(还有一些macrodefmagic),你最终可能会得到类似下面的结果:

<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(使用前将#替换为@)

从 Eclipse 项目创建多个 JAR 的相关文章

随机推荐