我有以下内容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>
Run Code Online (Sandbox Code Playgroud)
这是我的目录结构:
/ build/lib/MagicFolder/Src /build.xml
文件夹src包含.java文件.
路径MagicFolder应该是输入参数.
lib 有外部.jar库,应该包含在我的构建中.
build将编译.jar and.class`文件的文件夹
问题:我该如何改变build.xml?我build.xml应该:
./lib/jbl.jargvl*_*sov 34
如果你需要在classpath中添加一个jar来编译代码(抱歉,你要求的内容还不是很清楚),那么你需要将<javac>任务更改为如下所示:
<javac srcdir="./src" destdir="./build/classes">
<classpath>
<pathelement path="lib/jbl.jar"/>
</classpath>
</javac>
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要向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>
Run Code Online (Sandbox Code Playgroud)
要添加要<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>
Run Code Online (Sandbox Code Playgroud)