Ant 构建失败,没有可见错误

2024-02-02

编辑:我最终在 Eclipse 中设置了整个项目并能够构建它。我不确定为什么会出现这个问题,希望我永远不需要找出答案。

我遇到一个问题,我的构建报告“构建失败”,但没有报告任何错误。

我正在构建一个包含大量旧代码的大型应用程序,现在我很乐意修改这些代码。大多数其他开发人员都使用 Eclipse 设置了他们的构建,但我正在尝试通过现有的 build.xml 文件来构建它。

设置类路径后,构建运行顺利,但在开始编译步骤后不久,它返回:

Lots of "[javac] file.java" lines.

BUILD FAILED
<project path>/build.xml:201: Compile failed; see the compiler error output for details.

这没什么帮助。除了堆栈跟踪之外,build.log 没有其他信息:

at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1085)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:885)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

添加-debugflag to ant 会产生大量的信息,并且由于类路径如此长(如此多的 jar),很难对其进行排序。

这是 ant 中的目标:

  <target name="compile" depends="achmetadata">
    <mkdir dir="${path.build.classes}"/>
    <javac
      listfiles="yes"
      destdir="${path.build.classes}"
      classpathref="project.classpath"
      debug="on"
      deprecation="on"
      fork="yes"
      nowarn="no"
      memoryMaximumSize="512M"
      srcdir="${path.src.java}"
      source="1.4"
      target="1.4"
      >
    -><src path="${path.build.src}"/>
      <patternset refid="production-code"/>
    </javac>
  </target>

类路径是通过 classpathref 设置的,并且通过 和 标签包含很多 jar。

关于我应该寻找什么有什么想法吗?是什么原因导致 ant 出现这样的失败呢?


CLASSPATH 应在 build.xml 本身内部设置。如果您依赖于 CLASSPATH 环境变量,那么您就犯了一个错误。

看看这个 build.xml 是否工作得更好。研究目录结构并使您的目录结构与 build.xml 中的拼写相符:

<?xml version="1.0" encoding="UTF-8"?>
<project name="xslt-converter" basedir="." default="package">

    <property name="version" value="1.6"/>
    <property name="haltonfailure" value="no"/>

    <property name="out" value="out"/>

    <property name="production.src" value="src"/>
    <property name="production.lib" value="lib"/>
    <property name="production.resources" value="config"/>
    <property name="production.classes" value="${out}/production/${ant.project.name}"/>

    <property name="test.src" value="test"/>
    <property name="test.lib" value="lib"/>
    <property name="test.resources" value="config"/>
    <property name="test.classes" value="${out}/test/${ant.project.name}"/>

    <property name="exploded" value="out/exploded/${ant.project.name}"/>
    <property name="exploded.classes" value="${exploded}/WEB-INF/classes"/>
    <property name="exploded.lib" value="${exploded}/WEB-INF/lib"/>

    <path id="production.class.path">
        <pathelement location="${production.classes}"/>
        <pathelement location="${production.resources}"/>
        <fileset dir="${production.lib}">
            <include name="**/*.jar"/>
            <exclude name="**/junit*.jar"/>
            <exclude name="**/*test*.jar"/>
        </fileset>
    </path>

    <path id="test.class.path">                            
        <path refid="production.class.path"/>
        <pathelement location="${test.classes}"/>
        <pathelement location="${test.resources}"/>
        <fileset dir="${test.lib}">
            <include name="**/junit*.jar"/>
            <include name="**/*test*.jar"/>
        </fileset>
    </path>

    <path id="testng.class.path">
        <fileset dir="${test.lib}">
            <include name="**/testng*.jar"/>
        </fileset>
    </path>

    <available file="${out}" property="outputExists"/>

    <target name="clean" description="remove all generated artifacts" if="outputExists">
        <delete dir="${out}" includeEmptyDirs="true"/>
        <delete dir="${reports.out}" includeEmptyDirs="true"/>
    </target>

    <target name="create" description="create the output directories" unless="outputExists">
        <mkdir dir="${production.classes}"/>
        <mkdir dir="${test.classes}"/>
        <mkdir dir="${reports.out}"/>
        <mkdir dir="${junit.out}"/>
        <mkdir dir="${testng.out}"/>
        <mkdir dir="${exploded.classes}"/>
        <mkdir dir="${exploded.lib}"/>
    </target>

    <target name="compile" description="compile all .java source files" depends="create">
        <!-- Debug output
                <property name="production.class.path" refid="production.class.path"/>
                <echo message="${production.class.path}"/>
        -->
        <javac srcdir="src" destdir="${out}/production/${ant.project.name}" debug="on" source="${version}">
            <classpath refid="production.class.path"/>
            <include name="**/*.java"/>
            <exclude name="**/*Test.java"/>
        </javac>
        <javac srcdir="${test.src}" destdir="${out}/test/${ant.project.name}" debug="on" source="${version}">
            <classpath refid="test.class.path"/>
            <include name="**/*Test.java"/>
        </javac>
    </target>

</project>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ant 构建失败,没有可见错误 的相关文章

随机推荐

  • js-bson 错误 - OpenShift 上的 Mosca(MQTT 代理)

    我一直在 OpenShift 上使用 NodeJS 进行一些工作 当我尝试在 Node 实例中运行 Mosca 服务器时遇到问题 我收到的错误如下 Error var lib openshift 5547bd284382ec394a0000
  • 获取Oracle子查询中order by后的第一行

    我有一个表学生 id 姓名 部门 年龄 分数 我想找到每个部门得分最高 在最年轻的学生中 的最年轻的学生 在 SQL Server 中 我可以使用以下 SQL select from student s1 where s1 id in se
  • 我应该避免 typedef,尝试使用原始名称并尽可能进行强制转换吗?

    我不确定这里的词汇 但希望我能让人理解 当我使用不太扎实的 C 知识来研究 winapi 时 我发现了很多 typedef 的东西 对我来说 这些东西似乎使问题变得过于复杂 并添加了我必须记住的另一件事 例如 UINT代替unsigned
  • 在python中创建用户定义类的对象集

    table set class GlobeLearningTable object def init self mac port dpid self mac mac self port port self dpid dpid def add
  • Android:动态创建控件和方向变化

    目前我正在开发一个动态创建控件的 Android 应用程序 每次用户单击按钮时 按钮下方都会出现一个新的 EditText 并且用户可以与 EditText 进行交互 但是 如果屏幕方向发生变化 用户创建的 EditText 也会消失 用户
  • 来自plotly的三元图

    在此输入图像描述 https i stack imgur com lyUJu png 我想在三元图中添加线条 水平 垂直 以突出显示某些部分 可以帮我吗 三元图 代码如下 fig px scatter ternary df a df a b
  • 根据 big-o 表示法进行评级的算法是否会受到并行性的影响?

    我刚刚读了一篇关于矩阵乘法突破的文章 O n 2 373 的算法 但我猜矩阵乘法是可以并行化的 那么 如果我们开始生产千核处理器 这会变得无关紧要吗 事情会发生怎样的变化 并行执行不会改变特定算法的复杂性的基本原理 充其量 您只是花费一些给
  • 验证模型属性 WCF Web APi

    我有一组使用 WCF Web Api 托管的服务 我需要做的是验证应用程序模型内的属性 例如 在 MVC 3 中 我像这样装饰模型中的属性 StringLength 30 public string UserName get set 然后在
  • 如何计算SQL中不同项目的数量

    数据库结构 Clubs ID ClubName Teams ID TeamName ClubID Players ID Name Registrations PlayerID TeamID Start date End date Seaso
  • 计算 GPU 上的彩色像素 - 理论

    我有一张 128 x 128 像素的图像 它被分解为 8 x 8 的网格 每个网格块包含 16 x 16 像素 要求 我想计算我的图像包含多少个黑色像素 直接的方法 I could通过逐行 逐列检查整个图像并检查像素是否为黑色来实现此目的
  • 如何编译 ast.Expr?

    import ast code 1 1 expr ast parse code body 0 print type expr compile ast Expression expr string eval gets me class ast
  • Rails + Amazon RDS:延迟问题

    我有一个应用程序 其数据库正在迁移到亚马逊RDS 由于 RDS 和我们的服务器之间的查询延迟 例如仅由于查询而导致加载时间长达 30 秒 我的性能显着下降 没有显式缓存 并且请求可以进一步优化 但这仍然比本地数据库慢 10 倍以上 这种业绩
  • 使用 gorilla/mux URL 参数的函数的单元测试

    TLDR gorilla mux 过去不提供设置 URL 变量的可能性 现在确实如此 这就是为什么第二高得票数的答案在很长一段时间内都是正确的答案 原始问题如下 这就是我想做的 main go package main import fmt
  • html - 像链接一样的表格行

    我无法将表格行设置为某些内容的链接 我只能使用 css 和 html 我尝试了从 div in row 到其他东西的不同操作 但仍然无法使其工作 您有两种方法可以做到这一点 使用 JavaScript tr 使用锚点 tr td a hre
  • C++ 中线程的简单示例

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 有人可以发布一个在 C 中启动两个 面向对象 线程的简单示例吗 我正在寻找实际的 C 线
  • 如何为tomcat maven插件添加存储库

    如何包含找到的 tomcat maven 插件的存储库here http tomcat apache org maven plugin 2 0 SNAPSHOT source repository html 我在中央 Maven 存储库中找
  • 将 JSON 反序列化为 Java 枚举

    我在 Android 上的 Java 中有以下枚举 我希望能够将传入的 JSON 字符串 对象中的整数反序列化为该枚举类型 我在 Jackson 和 GSON 上受到了关注 但在我正在使用的 JSON org 包上没有得到任何关注 有没有简
  • FParsec 在可选解析器上失败

    我目前正在学习 FParsec 库 但遇到了一个问题 当我想解析一个可选字符串并随后继续正常解析时 FParsec 将在可选解析器上返回致命错误 而不是返回None正如我所期望的 下面的工作代码示例说明了我的观点 open System o
  • Apache Beam:如何同时创建许多经历相同 PTransform 的 PCollection?

    提前致谢 问题 我在谷歌云上有很多文件 对于每个文件我都必须 获取文件 对每个文件进行一系列 Google Cloud Storage API 调用以对其进行索引 例如 name blob name size blob size unzip
  • Ant 构建失败,没有可见错误

    编辑 我最终在 Eclipse 中设置了整个项目并能够构建它 我不确定为什么会出现这个问题 希望我永远不需要找出答案 我遇到一个问题 我的构建报告 构建失败 但没有报告任何错误 我正在构建一个包含大量旧代码的大型应用程序 现在我很乐意修改这