【问题标题】:Ant doesn't build second jarAnt 不构建第二个 jar
【发布时间】:2025-11-22 17:05:01
【问题描述】:

我有一个 intellij 项目,我正在尝试创建 2 个 jar。我已经设置了我的构建文件并运行构建所有工件。然而,只有我的第一个罐子出现了。为了尝试获取更多信息,我运行了命令行命令:ant -buildfile buildfile.xml

在结果中我得到以下结果:

artifact.jar1:jar:

[mkdir] 创建目录:~/Projects/proj1/__artifacts_temp/jar1_jar

[jar] 构建jar:~/Projects/proj1/__artifacts_temp/jar1.jar

[复制] 将 1 个文件复制到 ~/Projects/proj1/__artifacts_temp/jar1_jar

artifact.jar2:jar:

[mkdir] 创建目录:~/Projects/proj1/__artifacts_temp/jar2_jar

[jar] 构建jar:~/Projects/proj1/__artifacts_temp/1/jar2.jar

[复制] 将 1 个文件复制到 ~/Projects/proj1/__artifacts_temp/jar2_jar

所以看起来两个罐子都会被创建。然而……下一个输出更令人沮丧。

build.all.artifacts:

[复制] 将 1 个文件复制到 ~/Projects/proj1

[delete] 删除目录~/Projects/proj1/__artifacts_temp

我完全不知道为什么它只会复制 1 个罐子。任何关于如何获取更多信息的想法或想法将不胜感激。

编辑: 这是我的构建脚本的 build.all.artifacts 部分的样子

<target name="build.all.artifacts" depends="artifact.jar1:jar, artifact.jar2:jar" description="Build all artifacts">
  <mkdir dir="${artifact.output.jar1:jar}"/>
  <copy todir="${artifact.output.jar1:jar}">
    <fileset dir="${artifact.temp.output.jar1:jar}"/>
  </copy>
  <mkdir dir="${artifact.output.jar2:jar}"/>
  <copy todir="${artifact.output.jar2:jar}">
    <fileset dir="${artifact.temp.output.jar2:jar}"/>
  </copy>

  <!-- Delete temporary files -->
  <delete dir="${artifacts.temp.dir}"/>
</target>

【问题讨论】:

    标签: java ant intellij-idea


    【解决方案1】:

    检查buildfile.xml,第一个jar应该有一个copy>任务而不是第二个。

    更新:尝试使用&lt;fileset dir="${artifact.temp.output.jar2:jar}" erroronmissingdir="true"/&gt; 查看路径是否有问题。 还可以尝试打印路径以检查它们是否正确:

    <echo>${artifact.output.jar2:jar}</echo>
    <echo>${artifact.temp.output.jar2:jar}</echo>
    

    【讨论】:

    • 我编辑了我的原始帖子以显示我的 buildscript 的那个区域是什么样的。看来它应该为两者都复制,对吗?
    • 恐怕没有新的输出。简单来说就是只复制了一个文件,删除了temp目录,后面是BUILD SUCCESSFUL。
    • 我更进一步,删除了删除 tmp 目录的行。看起来在 jar1/ 和 jar2/ 目录中只有 JAR2 正在创建...不知道为什么会这样,我的 buildfile.xml 中一定有一些不正确的地方。我使用 intellij 生成它,所以可能某个地方出了问题。
    • 我相信你最初是对的,我只是把我们引向了错误的道路。事实证明,各个目标下的 COPY 标签不正确。在两个复制标签上,“tofile”设置都设置为相同的 JAR 名称。它现在工作正常。感谢您与我一起解决这个问题