如何包括我的Ant构建一个外部的jar LIB [英] How to include an external jar lib in my Ant build
问题描述
我有如下的的build.xml
:
<项目><目标名称=干净>
<删除DIR =./打造/>
< /目标与GT;<目标名称=编译>
< MKDIR DIR =./建/班/>
< javac的SRCDIR =./ SRCDESTDIR =./建/班/>
< /目标与GT;<目标名称=罐子>
< MKDIR DIR =./建/罐/>
<罐子destfile =./建/罐/ DependencyFinder.jarBASEDIR =./建/班>
<&舱单GT;
<属性名=DependencyFinderVALUE =主/>
< /清单>
< /瓶>
< /目标与GT;<目标名称=运行>
< Java的罐子=./编译/罐/ DependencyFinder.jar类名=$ {主级}叉=真/>
< /目标与GT;< /项目>
下面是我的目录结构:
/编译
/ lib目录
/ MagicFolder
/ src目录
/build.xml
文件夹的src
包含的.java
文件。
路径 MagicFolder
应该是一个输入参数。
LIB
有哪些应该包括在我的体型外部.jar库。
建将已编制
文件夹 .jar和
.class`文件
问题:
我应该如何改变我的的build.xml
?我的的build.xml
应该:
- 添加外部的lib
./的lib / jbl.jar
- 当我运行我的应用程序放在2输入parametrs我的应用程序
如果您需要添加一个jar到classpath中编译code(对不起,这是不太清楚你问什么)然后你需要改变<&javac的GT;
任务将是这样的:
< javac的SRCDIR =./ SRCDESTDIR =./建/班>
<&类路径GT;
< pathelement路径=LIB / jbl.jar/>
< /类路径>
< / javac的>
或者,如果你需要 jbl.jar
的内容添加到您创建的罐子,那么你需要改变你的<罐子>
任务将是这样的:
<罐子destfile =./建/罐/ DependencyFinder.jarBASEDIR =./建/班>
< zipgroupfileset DIR =lib目录包括=jbl.jar/>
<&舱单GT;
<属性名=DependencyFinderVALUE =主/>
<属性名=主类VALUE =org.ivanovpavel.YourMainClass/>
< /清单>
< /瓶>
要参数添加到< java的>
通话,使用嵌套的< ARG>
元素:
<目标名称=运行>
< Java的罐子=./编译/罐/ DependencyFinder.jar:LIB / jbl.jar类名=dependencyfinder.DependencyFinder>
< ARG值=亚历山大·罗森鲍姆/>
< ARG值=梅德Malikov/>
< / JAVA>
< /目标与GT;
I have the following 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>
Here is my directory structure:
/build /lib /MagicFolder /Src /build.xml
Folder src
contains .java
files.
Path to MagicFolder
should be an input parameter.
lib
has external .jar library which should be included in my build.
build
folder which will have compiled .jar and
.class` files
QUESTION:
How should I change my build.xml
? My build.xml
should:
- Add external lib
./lib/jbl.jar
- When I run my application put 2 input parametrs for my application
If you need to add a jar to classpath to compile the code (sorry, it isn't quite clear what you're asking for), then you need to change <javac>
task to look like this:
<javac srcdir="./src" destdir="./build/classes">
<classpath>
<pathelement path="lib/jbl.jar"/>
</classpath>
</javac>
Or if you need to add contents of jbl.jar
to the jar you are creating, then you need to change your <jar>
task to look like this:
<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>
To add arguments to <java>
call, use nested <arg>
elements:
<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>
这篇关于如何包括我的Ant构建一个外部的jar LIB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!