【发布时间】:2018-05-11 20:18:43
【问题描述】:
我需要能够使用不同的 Eclipse 项目运行同一个项目。我们需要将项目从jdk1.6升级到jdk1.8。所以我有 jdk1.6 版本的 EclipseLuna 和 1.8 版本的 EclipseNeon。
我正在构建并运行 1.8 版本。但是当我尝试在 Luna 中构建 1.6 版本时,我收到了这个错误:
做项目任务代理: [ant] Ant:无法将输出设置为 ${DIR_LOC_BUILD_TDD}/logs/20181435/Secbuild.xml-clean-compile.stdout
属性文件具有以相同方式为两个工作区定义的 DIR_LOC_BUILD_TDD。
在此之后还有其他错误正在寻找也在正确路径中的 xml 文件。 错误如下:
构建失败 C:\Development\\build.xml:327: 以下 执行此行时发生错误: C:\Development\\build.xml:306: 出现以下错误 执行此行时:C:\Development\\build.xml:242: 执行此行时发生以下错误: C:\Development\\build.xml:259: 出现以下错误 在执行这一行时: C:\Development\\build-core.xml:39: 找不到 C:\Development\\${cm.hm}\cm-ant-library.xml 导入自 C:\开发\\build-core.xml
出于安全考虑,我删除了项目名称..
我尝试使用相同的工作区并将工作区复制到每个 Eclipse 版本的不同目录,但我得到相同的错误。 唯一的区别是 Eclipse 版本。
谁能告诉我为什么 Luna 版本会出现这个错误并且 Neon 构建成功?
更新 似乎错误发生在“干净编译”阶段……这对我来说没有意义。没有什么要清理的,因为我还没有成功编译。 这是错误:
干净编译:子项目并行任务代理: [echo] clean-compile - 安全性 [echo] clean-compile - 核心 - 框架。做项目任务代理:做项目任务代理: [ant] Ant:无法将输出设置为 ${DIR_LOC_BUILD_TDD}/logs/20181544/Secbuild.xml-clean-compile.stdout
构建失败 C:\Dev\AUTOMATION\build.xml:327: 执行此行时发生以下错误:
更新 文件共享存在问题。我尝试删除 Luna 项目的工作区,除非我关闭 Neon Eclipse,否则我无法删除。 我将从源代码管理重新创建工作区,看看是否允许编译..
更新 仍然得到同样的错误。:(
更新 尝试运行 Luna 有一个管理员并得到了同样的错误。 我添加了另一个 Maven 项目并且可以成功构建它。 我添加了另一个 Ant 项目以查看是否可以构建它。 Targets 选项卡上的选项没有列出编译选项。 在 Neon Eclipse 中,它看起来像这样:
使用 Luna 以管理员身份运行的不同工作区文件夹中的相同项目如下所示:
选项是从给出错误的 xml 中导入的...(${cm.hm}cm-ant-library.xml 这个xml文件在我需要编译的项目中。如何导入?
【问题讨论】:
-
请使用当前版本的 Eclipse (Oxygen.3a) 以避免遇到已经修复的错误,并在 Ant External Tools Configurations 中指定要用于运行 Ant 构建的 JDK 在 JRE 选项卡中(您首先必须在 Window > Preferences: Java > Installed JREs 中指定要使用的 JDK)。
-
较新版本的 Eclipse (Neon) 没有给我带来问题。这是我需要使用 JDK1.6 (Luna) 运行的旧版本。在构建配置 - JRE 选项卡中,我选择了“单独的 JRE”并使用 jdk1.6。
-
还要确保 Base Directory(在 Main 选项卡中)两者相同(如果为空,则构建文件的目录为用过的)。你能告诉我们
C:\Development\\build-core.xml的第39行到底发生了什么吗?看起来${DIR_LOC_BUILD_TDD}和${cm.hm}尚未解析(可能是因为属性文件具有相对路径和错误的基目录)。 -
我的 基本目录 是空白的。所以,我尝试使用 workspace 按钮来指定,但没有奏效。我还尝试了 _File System' 选项,但也没有用。我犯了同样的错误。在属性文件中,
cm.hm设置为../<Project Name>。DIR_LOC_BUILD_TDD' is set to/opt/...构建/...` -
你是什么意思...CLI?