一尘不染

Ant编译不会复制资源

java

我创建了自己的build.xml,其中包含:

<target name="compile">
    <mkdir dir="build"/> 
    <javac destdir="build"> 
        <src path="src"/> 
    </javac>
</target>

<target name="build" depends="compile">
    <mkdir dir="dist"/>
    <jar destfile="dist/app.jar" basedir="build" />
</target>

<target name="run" depends="compile">
    <java classname="webserver.Loader" classpath="build" fork="true" />      
</target>

效果很好。当我调用ant run时,它会编译并运行我的应用程序,但是我的应用程序带有图标包,并且不会移动到“
build”文件夹,因此我的应用程序以无法找到我的图标的异常结束。当我自己移动它们时,它将起作用。

我尝试使用

<copy todir="build/app/icons">
    <fileset dir="src/app/icons"/>
</copy>

它可以工作,但是我想不使用copy命令。javac是否有任何参数?或者是其他东西?

谢谢你的答案。


阅读 210

收藏
2020-12-03

共1个答案

一尘不染

抱歉,您将需要手动复制非Java文件。从技术上讲,资源不是“来源”。命令行javac不会将资源文件从源目录复制到输出目录,ant的javac任务也不会。

2020-12-03