【问题标题】:Packaging multiple Packages, javadoc and external jar dependencies using ANT script in Eclipse在 Eclipse 中使用 ANT 脚本打包多个包、javadoc 和外部 jar 依赖项
【发布时间】:2014-01-19 02:22:31
【问题描述】:

我正在制作一个图书馆。这个库中有 5 个不同的包。

src
|
 ----
    |--- pkg.exceptions
    |--- pkg.a
    |--- pkg.b
    |--- pkg.c
    |--- pkg.main
libs
|
 ----someExternalJar.jar

项目设置如下 pkg.main 使用所有其他包中的类。 事实上,每个包都使用彼此的类。 我还为每个类编写了 javadoc cmets。 main 中的一个类使用 someExternalJar.jar。

我浏览了不同的文章,但无法理解 ANT 构建脚本。

到目前为止,我已经尝试过使用以下构建脚本...

编译源代码,生成 JavaDocs 并将应用程序打包到 JAR 存档中。

<property name="srcDir1" value="src/pkg/exceptions"/>
<property name="srcDir2" value="src/pkg/a"/>
<property name="srcDir3" value="src/pkg/b"/>
<property name="srcDir4" value="src/pkg/c"/>
<property name="srcDir5" value="src/pkg/main"/>
<property name="distDir" value="/dist"/>
<property name="buildDir" value="${distDir}/build" />
<property name="docDir" value="${distDir}/docs" />
<property name="library.dir" value="/lib" />

<path id="external.classpath">
    <pathelement path="${library.dir}/someExternalJar.jar" />
</path>

<target name="clean">
    <delete dir="${buildDir}"/>
    <delete dir="${distDir}"/>        
    <delete dir="${deployDir}"/>  
</target>

<target name="init" depends="clean">
    <tstamp/>
    <mkdir dir="${buildDir}"/>
    <mkdir dir="${distDir}"/>        
    <mkdir dir="${deployDir}"/> 
    <mkdir dir="${reportDir}"/> 
</target>   

<target name="compile" depends="init">
    <javac srcdir="${srcDir1}" destdir="${buildDir}" />
    <javac srcdir="${srcDir2}" destdir="${buildDir}" />
    <javac srcdir="${srcDir3}" destdir="${buildDir}" />
    <javac srcdir="${srcDir4}" destdir="${buildDir}" />
    <javac srcdir="${srcDir5}" destdir="${buildDir}" />
</target>

<target name="doc" depends="compile">
    <javadoc packagenames="pkg.exception" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.exception docs">
        <doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
        <bottom><![CDATA[<i>MyAPI</i>]]></bottom>
    </javadoc>
    <javadoc packagenames="pkg.a" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.a docs">
        <doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
        <bottom><![CDATA[<i>MyAPI</i>]]></bottom>
    </javadoc>
    <javadoc packagenames="pkg.b" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.b docs">
        <doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
        <bottom><![CDATA[<i>MyAPI</i>]]></bottom>
    </javadoc>
    <javadoc packagenames="pkg.c" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.c docs">
        <doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
        <bottom><![CDATA[<i>MyAPI</i>]]></bottom>
    </javadoc>
    <javadoc packagenames="pkg.main" sourcepath="." destdir="${docDir}" author="true" version="true" use="true" windowtitle="pkg.main docs">
        <doctitle><![CDATA[<h1>MyAPI</h1>]]></doctitle>
        <bottom><![CDATA[<i>MyAPI</i>]]></bottom>
    </javadoc>
</target>

<!-- Create Java application archive (Jar) -->
<target name="archive" depends="doc">
    <jar destfile="${distDir}/myapi.jar" basedir="${buildDir}" excludes="**/*Test.class,**/Runner.class" />
</target>

但我遇到了各种错误,例如无法从 pkg.exceptions、pkg.a 等中找到符号

有人可以帮忙吗?

【问题讨论】:

  • 如果src/pkg/exceptions 使用src/pkg/a,反之亦然,单独编译它们可能不是一件容易的事(因为两者都应该在另一个之前构建)。您不能将所有内容合并到一个包中吗?或者你能避免每个包使用彼此的类吗?

标签: java eclipse ant


【解决方案1】:

根据我所做的阅读和@gturri 的回复,我得出结论,我正在为自己创建一个 X Y 问题,所以我没有创建单独的包,而是创建了一个主包并在该包中创建了子文件夹......所以

src
|
----
    |--- pkg.exceptions
    |--- pkg.a
    |--- pkg.b
    |--- pkg.c
    |--- pkg.main
libs
|
----someExternalJar.jar

成为

src
|
----
|   |
|   --- pkg.main
|               |
|               ----
|                  |--- folder.exceptions
|                  |--- folder.a
|                  |--- folder.b
|                  |--- folder.c
libs
|
----someExternalJar.jar

通过这种方式,我能够编译 pkg.main 的内容并使用 build.xml 中的微小更改创建 javadocs /p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多