使用Ant创建java库



我试图把一些类放在一个jar中,用作库。

对于这个测试,我尝试有一个类apiInterface,它在包project.api中。

我到这里时认为我使用了错误的库,因为我在导入行得到了"Package project.api不存在",但这个答案意味着jar tf project.jar的输出应该是

project/api/apiInterface.class

而我得到

apiInterface.class
apiInterface.java

所包含的java文件是有意的,但不是必需的。

我的建筑.xm 的相关部分

<target name="buildAPI" depends="compile">                  
    <mkdir dir="${jar}" />                                  
    <jar destfile="${jar}/${ant.project.name}-api.jar">  
        <fileset dir="${bin}/${ant.project.name}/api"/> 
        <fileset dir="${src}/${ant.project.name}/api"/>
    </jar>                                                  
</target>

compile成功编译了java,并将.class文件放入bin/project/api中。

Jar文件将包含fileset元素中指定目录下的文件列表。由于您将目录指定为${bin}/${ant.project.name}/api,因此任务只需在此目录下进行搜索,并在Jar中包含类文件,即${bin}/${ant.project.name}/api/apiInterface.class

要包含与包对应的目录,只需更改dir属性以指向根文件夹,在本例中为${bin}。源文件也是如此。

<jar destfile="${jar}/${ant.project.name}-api.jar">  
    <fileset dir="${bin}"/> 
    <fileset dir="${src}"/>
</jar>

如果只应包含此包(即Jar中不应包含其他包),请使用includes属性:

<jar destfile="${jar}/${ant.project.name}-api.jar">  
    <fileset dir="${bin}" includes="${ant.project.name}/api/*.class" /> 
    <fileset dir="${src}" includes="${ant.project.name}/api/*.java" /> 
</jar>

您可以从Ant手册中查看此链接,了解如何正确使用此任务。

相关内容

  • 没有找到相关文章

最新更新