从Eclipse Project创建多个JAR

时间:2009-09-07 18:54:28

标签: eclipse ant jar

我已经开始研究一个项目,该项目目前从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中。相反,我只想在一个JAR文件中使用thing1和thing2而在第二个JAR文件中使用thing3。

我确实意识到我可以有单独的项目,但我想看看是否有可能将项目组合在一起仍然有意义。任何帮助将不胜感激。

谢谢。

每个请求,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>

2 个答案:

答案 0 :(得分:4)

如果你使用includes {和zipfileset魔法的macrodef工具,你可能会得到如下内容:

<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"/>

答案 1 :(得分:0)

您可以粘贴build.xml文件的内容(Ant使用的文件)吗?

您需要做的事情非常简单,但请向我们展示构建文件,以便我们为您提供帮助。

或..自己在Ant jar task

上阅读