- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 apache ant 的新手,目前正在开发 apache Ant 项目。我刚刚开始,将项目导入工作区并尝试运行 build.xml。我将原始项目附带的所有库添加到构建路径中。我遇到以下问题。请其他人编写代码,我应该改进它。与此相关的目录存在于项目目录中。
BUILD FAILED
C:\workspace\MyApp\build.xml:83: srcdir "C:\workspace\MyApp\${compile.javac.srcdir}" does not exist!
错误代码引用了 build.xml 文件的以下部分
<target name="compile.default" depends="init">
<javac fork="yes" srcdir="${compile.javac.srcdir}" destdir="${compile.javac.destdir}" includes="${compile.javac.include}" excludes="${compile.javac.exclude}" classpath="${compile.javac.classpath}" debug="${compile.javac.debug}" optimize="${compile.javac.optimize}" deprecation="${compile.javac.deprecation}" verbose="${compile.javac.verbose}">
</javac>
<copy todir="${compile.javac.destdir}">
<fileset dir="${compile.javac.srcdir}" includes="${compile.copy.include}" excludes="${compile.copy.exclude}"/>
</copy>
</target>
<target name="compile" depends="init,compile.default" description="Compile all java source">
</target>
<!--+++++++++++++++-->
<!-- lib target(s) -->
<!--+++++++++++++++-->
<target name="lib.default" depends="init,compile">
<xmlbean schema="config/schemas/validate/1.0/validate.xsd" destfile="lib/glx-beans.jar" classpath="lib/xbean.jar:lib/jsr173_1.0_api.jar" />
<jar jarfile="${lib.filename}">
<fileset dir="${lib.srcdir}" excludes="${lib.exclude}" />
</jar>
</target>
<target name="lib" depends="init,compile,lib.default" description="Create all Project Libraries">
</target>
你能告诉我我缺少什么吗?
最佳答案
${compile.javac.srcdir}
没有定义。有以下几种可能性:
build.xml
中定义,但是在某种属性文件中。看看你是否有类似 <property file="..."/>
的东西在你的构建脚本中。我的建议是在 build.xml
中定义所有属性。文件,并使用属性文件来覆盖这些设置。这样,开发人员在 build.xml
中需要的唯一构建文件。文件,并且不必担心设置单独的 build.porperties
文件。build.xml
中定义的文件在特定任务下,但您忘记说您使用此文件的目标取决于此任务。 您可以做的事情之一是使用 -d
运行 Ant 时的参数。当使用 -d
运行 Ant 时,我运行以下命令参数:
$ and -d 2>&1 | tee ant.out
然后我可以查看ant.out
看看我是否没有定义该特定属性。也许我的大小写错误或拼写错误的属性名称。例如,我很可能将该属性定义为copmile.javac.srcdir,因为我不知道如何拼写。看着-d
输出可以快速指出这些类型的错误。
顺便说一句,您不应该让所有任务都依赖于 init
因为它们依赖于compile.default
无论如何:
<target name="compile.default" depends="init">
....
</target>
<target name="compile" depends="compile.default">
....
</target>
<target name="lib" depends="compile,lib.default">
....
</target>
如果我运行目标lib
,它将看到 compile
取决于compile.default
这取决于init
。因此,您的构建将运行 init
,然后compile.default
,然后compile
,然后 'lib.default and finally
库`。
如果初始化任务只是设置属性,您可以在任何任务之外执行此操作。然后,这些属性将在执行任何任务之前设置。这样,他们就不会被遗忘。如果您init
也在创建目录,您可能想要移动那些 <mkdir/>
使用该目录的任务前面的任务。例如,您可能希望将 destdir 用于 javac
之前<javac/>
任务。
我发现在任何任务之外分配默认属性,并在需要之前创建目录以简化 build.xml
。另外,如果用户只是编译而不是打包 jar/war/etc,那么您就不会创建一大堆未使用的目录。
关于java - Apache Ant {编译 javac srcdir} 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615107/
我的问题是关于基本的java命令之一“javac”。我的桌面上有一个“.java”文件。我已经安装了 JDK 7 并将路径变量添加到环境变量中。这是“环境变量”的屏幕截图。 http://s13.po
我制作了我的 gitrepository 并提交了它。 插入了一个 java 文件并想编译它,但它给了我这个: Bernard@BERNARD-PC /c/users/bernard/desktop/
运行Maven时,得到以下输出: [WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment. 我该
我有一个导入一些 servlet 库的类。当我从命令行编译它时它很好。 当我使用 ant compile 任务编译它时,它给出了在其路径中找不到 servlet 库的错误。 这是已知/常见的情况吗?
我试图在 maven-compiler-plugin 中指定另一个版本的 JDK .当-target和 -source参数设置为1.5,一切正常。但是当我尝试使用 1.6 JDK 时,maven 会报
我们的软件之前附带 OpenJDK JRE,但现在我们将附带 Oracle JRE。 之前我们使用 OpenJDK javac 编译器进行编译。我认为现在我们应该使用 Oracle javac 编译器
在大多数现代 IDE 中,您可以设置一个参数来确保 javac 获得足够的堆内存来进行编译。由于不值得在这里讨论的原因,我们暂时与 JBuilder 2005/2006 联系在一起,而且源代码的数量似
我在桌面上的 Notepad++ 中保存了一个名为“first.java”的文件。当我运行 cmd 命令“javac first.java”时,它给了我这个错误。 javac: file not fo
更新: See resolution here. 感谢大家的帮助! 我在尝试使用 Ant 编译项目时遇到错误,它声称“[javac] javac:无效目标版本:7”并导致构建失败。 我在 Mac OS
当我尝试在我的 gwt-maven Projekt 上进行 maven-install 时,我得到了这个错误: [ERROR] Failed to execute goal org.apache.ma
使用 maven 编译时出现编译错误。 [ERROR] COMPILATION ERROR : [INFO] ---------------------------------------------
我正在查看一些内部 javac sun 编译器 API 源代码,并在 Types 类中发现了这一点: public Boolean visitTypeVar(TypeVar var1, Type va
我正在尝试运行 java 应用程序,但出现以下错误, Unable to find a javac compiler; com.sun.tools.javac.Main is not on the c
我有这个类,它是我在从 Java 6 移植到 Java 8 的项目中找到的一些代码的简化: public class Unification { final class Box {}
首先,我要感谢你,并明确地说,我已经在这个问题上苦苦思索了好几天,并在其他类似线程中寻找解决方案,但没有成功。 我们的应用程序负责生成 java 类,其中一些可能在类名(因此文件名)中包含特殊字符,例
以下代码创建了一个Collector,它产生了一个UnmodifiableSortedSet: package com.stackoverflow; import java.util.Collecti
当我用 Maven 编译我的类时遇到问题。堆栈跟踪如下所示: [ERROR] Failure executing javac, but could not parse the error: [ERRO
这个问题在这里已经有了答案: Why Java compiler as distributed as executable and not as JVM bytecode? (1 个回答) 关闭 7
我有一些用 javac 1.8.0_92 编译的代码: public final class Either { // ... private final L l; privat
这个问题在这里已经有了答案: Lombok's access to jdk.compiler's internal packages incompatible with Java-16 (3 个回答)
我是一名优秀的程序员,十分优秀!