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

Ant编译不会复制资源

康赞
2023-03-14
问题内容

我创建了自己的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是否有任何参数?或者是其他东西?

谢谢你的答案。


问题答案:

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



 类似资料:
  • 如果你不知道怎么从 github 上下载 Nutz 的源代码,请看 从 Git 编译 一节 编译通常是个麻烦的问题,依赖关系啊,环境变量啊,等等,全是些没有技术含量的东 东,但是却能搞的你非常头疼。虽然编译 Nutz 是一个相对简单的工作 -- 它编译 的时候不需要依赖第三方 jar 包,但是还是有一些工作要做的。 从我个人的情况来看,我经常在如下三个环境下进行 Nutz 的开发: 公司 - Vi

  • 我的Java项目在终端中使用Maven成功构建。 使用IntelliJ IDE构建时,同一项目的构建失败。 上面说拒绝许可

  • 我的构建输出是out/production/classes。Java文件可以很好地编译成类,然后放在out/production/classes/packageName上,但资源不会被复制。据我所知,他们应该直接进入out/production/classes目录。 如果相关的话,我使用的是Java 11、Spring Boot和Gradle。这是我的构建。渐变 和我的编译器设置: 我的资源没有被

  • 我们的构建系统使用ANT进行代码编译,使用MAVEN生成编译/运行时类路径和静态预处理。我们正在为我们的端到端构建生命周期采用MAVEN,我认为这不会很快发生。因此,在此期间,我们决定使用Maven创建一个打包工件。为此,我最终使用了maven-assembly-plugin,只是因为我可以从ant编译的工件中输入创建包所需的内容,这是我通过在POM中定义一个程序集描述符来实现的。然而,我们还希望

  • 问题内容: 谁能解释为什么下面的代码不能编译,而第二个代码可以编译? 不编译 收集 线上的编译错误 IntStream类型的方法collect(Supplier,ObjIntConsumer,BiConsumer)不适用于参数(Collector>) 类型不匹配:无法从收集器>转换为供应商 编译 问题答案: 没有接受的方法。如果您想要,则必须将装箱到: 的替代方法是: 或者您可以使用以下 方法:

  • 尝试运行apachesparks示例代码之一(https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/graphx/AggregateMessagesExample.scala)我得到以下编译错误 但从方法上看,这似乎是正确的。不确定这里出了什么问题。