当前位置: 首页 > 面试题库 >

如何在我的Ant构建中包含外部jar库

乐正镜
2023-03-14
问题内容

我有以下内容build.xml

<project>

<target name="clean">
    <delete dir="./build"/>
</target>

<target name="compile">
    <mkdir dir="./build/classes"/>          
    <javac srcdir="./src" destdir="./build/classes"/>                   
</target>

<target name="jar">
    <mkdir dir="./build/jar"/>
    <jar destfile="./build/jar/DependencyFinder.jar" basedir="./build/classes">
        <manifest>
            <attribute name="DependencyFinder" value="main"/>
        </manifest>
    </jar>
</target>

<target name="run">
    <java jar="./build/jar/DependencyFinder.jar" classname="${main-class}" fork="true"/>                    
</target>

</project>

这是我的目录结构:

/ build / lib / MagicFolder / Src /build.xml

文件夹src包含.java文件。

路径MagicFolder应为输入参数。

lib 有外部.jar库,应该将其包含在我的版本中。

build将编译.jar and.class`文件的文件

问题:我应该如何改变我的build.xml?我build.xml应该:

  1. 添加外部库 ./lib/jbl.jar
  2. 当我运行我的应用程序时,为我的应用程序输入2个输入参数

问题答案:

如果您需要在类路径中添加一个jar来编译代码(对不起,还不清楚您要的是什么),那么您需要将<javac>任务更改为如下所示:

<javac srcdir="./src" destdir="./build/classes">   
    <classpath>
        <pathelement path="lib/jbl.jar"/>
    </classpath>
</javac>

或者,如果您需要向jbl.jar正在创建的jar中添加内容,则需要将<jar>任务更改为如下所示:

<jar destfile="./build/jar/DependencyFinder.jar" basedir="./build/classes>
    <zipgroupfileset dir="lib" includes="jbl.jar" />
    <manifest>
        <attribute name="DependencyFinder" value="main"/>
        <attribute name="Main-Class" value="org.ivanovpavel.YourMainClass"/>
    </manifest>
</jar>

要添加要<java>调用的参数,请使用嵌套<arg>元素:

<target name="run">
    <java jar="./build/jar/DependencyFinder.jar:lib/jbl.jar" classname="dependencyfinder.DependencyFinder">  
        <arg value="Alexander Rosenbaum"/>
        <arg value="Dmitry Malikov"/>
    </java>                  
</target>


 类似资料:
  • 我正在编写Spring应用程序,我有两个外部罐子。它在IDE中工作,但是当我用maven构建可执行jar时,它失败了,错误为java.lang.NoClassDefFoundError:到我的外部jar。我谷歌了,但我仍然不知道该怎么办。请帮帮我.我在pom文件中的依赖项是: 我只是用男人包建造的。

  • 问题内容: 目前,我正在使用Android,试图避免使用Eclipse(对此我有非理性的仇恨)。 我需要包含一个外部文件(用于我的),并且不知道如何链接它以… 我已经阅读了文件,但是向XML 添加或节点并不能解决问题。 希望有人能帮助我! 问题答案: 只需将其放在目录中即可。从那里开始,其他所有工作都得到了照顾- 无需修改Ant脚本。例如,这是一个示例项目,显示了以这种方式集成BeanShell解

  • 问题内容: 当我运行“清理并生成”时,仅在文件夹位于文件的同一文件夹时,才会运行正在创建的文件。 因此,如果我将jar文件移动到桌面并将该文件夹保留在该文件夹中,则jar文件将给我一个例外。 我该如何解决这个问题? 问题答案: 如果将jars复制到源代码目录中,它们将位于您的最终jar中。但是,我不确定这是否会在100%的时间内有效。 java-forum上有一篇很棒的文章,内容如下: 除了少数情

  • 问题内容: 我刚刚“继承”了一个Java项目,而不是来自Java背景,有时我会有点迷失。Eclipse用于在开发过程中调试和运行应用程序。我已经通过Eclipse成功创建了一个.jar文件,该文件“包含”了所有必需的外部jar,例如Log4J,xmlrpc- server等。然后可以使用以下命令成功运行此大.jar: 我的下一步是使用Ant(版本1.7.1)自动进行构建,因此我不必参与Eclips

  • 问题内容: 我已经完成了连接数据库(MySQL)的项目。现在,我要将项目导出为jar。但是我不知道如何包括其外部依赖项?在Eclipse中有什么方法可以做到这一点,还是应该为此使用任何脚本? 问题答案: 当你将项目导出为“可运行的jar”(在项目->导出->可运行的jar上单击鼠标右键)时,可以选择将所有依赖项打包到生成的jar中。它还有两种其他方式(请参见屏幕截图)来导出库,请在决定使用哪种打包

  • 我创建了一个spring boot应用程序,它读取一个excel文件,以便在前端显示数据,因此基本上它是持久数据的来源。我能够从eclipse正确地运行,但是当我创建一个spring boot jar并从命令行运行它时,它会失败,因为jar中没有包含文件。 我尝试了两个位置src/main/resources和/src/main/webapp/WEB-INF/external/,但在这两种情况下都