缺少运行使用蚂蚁构建的Java的类错误



我有一些我修改的代码。

当我尝试在目录中运行蚂蚁时,它会失败,而缺少类。我可以通过使用-lib选项对ANT指定现有类的位置。然后,编译正常工作,但是创建的DIST ZIP文件似乎丢失了库,就像我尝试运行它时一样,我看到与缺少类的错误,这些类是我使用-lib选项指定的类,所以这是可能是由于我使用了-lib选项的方式。

我如何强制常规ANT命令将指定的其他类包括在-lib命令中?

您可以编写一个目标,该目标将在zip文件中复制您的lib目录/文件。假设创建一个临时端,然后复制文件,然后执行目标以复制lib目录,然后zip temp dir。

<target name="copyLib">
    <copy todir="${temp.dir}">
         <fileset dir="${lib.dir}">
            <include name="*.jar" />                        
        </fileset>
    </copy>
</target>

更新路径并将此目标调用到您的创建ZIP目标中。

编译器任务看起来像这样:

<javac srcdir="${base}/src" 
      destdir="${base}/classes" 
      classpath="${base}/lib">
</javac>

zip任务看起来像这样:

<zip
    destfile="${base}/dist.jar"
    basedir="${base}/classes"
    includes="..."
    excludes="...">
</zip>

因此,在类中编译了源并在JAR中进行拉链,但是用于编译的库不包含在JAR 中,它们是运行时依赖性。

我建议您使用Fileset在蚂蚁脚本的顶部声明自己的路径。

<path id="build.path">
    <fileset dir="lib" includes="*.jar"/>
</path>

与强迫用户指定正确的" -lib"参数相比,较小的错误。

最后,可以使用相同的文件集在您创建的zip文件中包含相同的jar:

  <zip destfile="${dist.dir}/mycode.zip">
    ..
    ..
    <fileset dir="lib" includes="*.jar"/>
  </zip>

相关内容

  • 没有找到相关文章

最新更新