【问题标题】:Netbeans project won't rebuild with custom Ant targetNetbeans 项目不会使用自定义 Ant 目标重建
【发布时间】:2018-03-20 17:38:45
【问题描述】:

在 Netbeans 中构建项目。我在 build.xml 中有一个自定义 ANT Target,它在程序运行之前将两个库文件复制到 dist/lib:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ApplicationName" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">

<description>Builds, tests, and runs the project EnrollmentApplication.</description>

<import file="nbproject/build-impl.xml"/>

    <target name="-post-jar">
        <echo message="Copying dll files..." />
        <copy file="lib/file1.dll" todir="${dist.dir}/lib" />
        <copy file="lib/file2.dll" todir="${dist.dir}/lib" />
    </target>

</project>

但是,当我进行代码更改、构建和运行时,代码更改不会反映在新的运行中。如果我清理、重建和运行,我会得到 Error: Unable to access jarfile &lt;file path&gt;\Application1.jar

此时手动修改 build.xml 可使项目正确重建一次,然后循环重新开始。我对这个 Ant Target 有什么误解?这似乎非常简单。

编辑:

显然复制文件与它无关。即使只使用 &lt;echo&gt; 任务覆盖 -post-jar 也会产生相同的问题

【问题讨论】:

  • 正如您似乎已经发现的那样,您在问题中包含的脚本部分可能与您遇到的错误没有太大关系。您能否发布您的整个脚本,或者如果它太长,发布构建、部署和运行您的 jar 应用程序的目标?将整个内容放在 gist 或 pastebin 中也可以。
  • @CAustin - 已发布完整文件。它是标准的 Netbeans 生成的 build.xml,没有其他修改。如果我注释掉目标并保持其他所有内容不变,它将按照您的预期构建

标签: java netbeans ant


【解决方案1】:

查看 nbproject/build-impl.xml 后,很明显 -post-jar 目标具有我没有包含在覆盖目标中的依赖项。它们在下面列出(注意这是一个 JavaFX 程序)。

<target depends="-jfx-copylibs,-rebase-libs,jfx-deployment" name="-post-jar">

我假设这些其他目标仅被调用,因为-post-jar 将它们列为依赖项,即它们不被任何其他目标调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2014-11-19
    • 2020-12-22
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多