问题标签 [buildship]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 当引用特定版本的 Glassfish JAXB 时,Buildship Java 启动配置缺少 JAR
背景
我正在将一个大型项目从 8 迁移到 OpenJDK 11.0.2。因此,我需要包含 JAXB 实现。
问题
我观察到使用 Buildship (3.0.1.v20181217-1554) 从 Eclipse 2019-03 (4.11.0) 中启动的应用程序不包含任何外部 JAR 依赖项。
这只影响启动配置,编译很好。
分析
我已将故障隔离到使用 Glassfish JAXB 实现的 2.4.0-b180725.0644 版本时。使用 2.3.1 按预期工作。
我究竟做错了什么?我怎样才能避免这个问题
笔记。现在提出https://bugs.eclipse.org/bugs/show_bug.cgi?id=548455
测试用例
构建.gradle
Java 测试文件
使用 2.3.1 时的输出
使用 2.4.0-b180725.0644 时的输出
java - 具有 buildship 集成的 Eclipse 2019-06:DocumentBuilder 不可访问
我有一个多项目 gradle 设置 (settings.gradle),我使用 OpenJDK-12 将其导入 eclipse。
导入后,我得到如下编译错误(在某些但不是所有项目上):
The type javax.xml.parsers.DocumentBuilder is not accessible
如果我清理(并自动重建)项目,错误就会消失。但是,如果我清理了所有项目,则会再次出现错误(不一定是完全相同的错误,但它们都是“......不可访问”的类型。
这对我来说似乎是一个日食错误,但如果有人知道我能做些什么来进一步缩小问题范围,我将不胜感激。
eclipse - 项目构建目录中的 gradle.properties 无法通过 Eclipse/Buildship 读取 - 命令行工作正常
我使用最新的 Eclipse(4.12 版)和 Buildship Gradle Integration 3.0。我可以在 Gradle 任务视图中看到任务,但无法成功运行任务。
当我从命令行运行任务时,它工作正常。
当我通过双击 Gradle 任务视图中的任务来运行任务时,任务失败并显示以下错误消息:
java.lang.IllegalArgumentException: Pfad[src] 存在。
这转化为
java.lang.IllegalArgumentException:路径 [src] 不存在。
src
是项目的 gradle.properties 文件中定义的目录,如下:
项目的 gradle.properties 文件与 build.gradle 脚本位于同一目录中。
在 build.gradle 文件中,我将属性称为project.GEN_ROOT_PATH
我相信这就是我从 Gradle Tasks 视图运行任务时异常抱怨的原因。
我不明白,我在互联网上找不到有用的信息来解决这个问题。
正如我之前所说,任务可以在命令行中成功运行。
在 Eclipse 中运行时任务失败。有谁知道问题可能是什么?我怎样才能找到可能的解决方案?
eclipse - Eclipse buildship gradle 配置(gradlew,或 --init-script)
我的公司使用自定义gradlew
的传递--init-script
和--project-prop
选项来gradle。
如何将这些相同的选项传递给我通过 eclipse.jdt.ls 运行的 eclipse buildship
eclipse - Eclipse 挂起添加 Gradle 性质
使用 Buildship 3.1.2 运行 Eclipse 2019-06。从现有文件夹创建一个项目,当添加 gradle 性质时,Eclipse 做了一些工作,然后卡在“导入根项目:运行构建”。已经删除并重新安装了 Gradle,删除并重新安装了 Buildship,删除了 ~/.gradle 和 /.gradle 文件,尝试使用 Gradle 包装器和当前版本的 Gradle (5.6.2)。.metadata/.log 帮助文件中没有任何内容。
eclipse - build.gradle 中与 Buildship 互斥的存储库
我有一个多项目如下:
在这些中,我使用依赖项和插件的默认存储库。我们将 Eclipse 与Buildship一起使用,直到现在解决方案大多是使用Refresh Gradle Project
.
问题:一些同事和我们位于不同网络上的 CI 服务器也必须为所有依赖项和插件使用自定义存储库。这个虚拟仓库还需要身份验证、证书和代理来增加趣味性。
尝试在 中指定两个存储库build.gradle
,但订购它们没有帮助。第一个失败将导致构建失败,其中一个将始终失败,具体取决于网络。考虑将变量作为可以从文件中覆盖/读取的第一行,但由于pluginManagement
必须是第一个元素settings.gradle
并且在任何事情之前进行评估,这个选项似乎也失败了。
我需要的是在这些存储库之间轻松切换,但仍以某种方式与 Buildship 兼容。
除了创建多组这些文件(例如build.1.gradle
/并在每次构建之前使用它们的内容settings.1.gradle
覆盖标准build.gradle
/ )之外,我真的没有其他办法。settings.gradle
这可以通过 Gradle 实现还是以我可能错过的智能方式实现?
java - 为什么 gradlew build 命令不能只编译和构建已更改的内容并使过程更快?
eclipse 下自动构建的特性比./gradlew build快很多。
经过一些研究,我的发现是它只编译和构建更改的文件并将其替换到构建文件夹中。
那么为什么./gradlew build命令不能编译和构建已经更改的文件并将其替换到 build 文件夹中,并使整个构建过程更快。
我最近开始使用热插拔代理 + DCEVM 的自动构建功能。
java - Springboot Gradle 插件不适用于 Eclipse
问题
当我使用这个springboot插件springboot-gradle-plugin时,我的java项目没有在Eclipse中运行
它抛出这个异常
有问题的示例项目
可以在此处找到具有此问题的示例存储库:springboot-gradle-plugin-issue
要查看此问题,您需要使用 Eclipse 运行此项目(我使用 eclipse 2019-09 运行它)
这个项目做什么
这个 java 项目使用 gradle 这个插件spring-boot-gradle-plugin。
该项目在控制台中打印我的 build.gradle 文件中声明的应用程序版本。在我的 gradle.build 文件中,我包含以下几行:
这条线它所做的只是将一个名为' bootBuildInfo '的Gradle任务添加到gradle中,并在运行此任务时创建此文件META-INF/build-info.properties。
在Java中,运行App时,springboot会自动加载并读取META-INF/build-info.properties来创建一个bean。
Eclipse的问题
当我在终端中使用 gradle 构建并运行生成的 jar 文件时,所有这些都有效,但是当我通过 Eclipse 运行我的应用程序时它不起作用。
它不会创建文件META-INF/build-info.properties并且当 springboot 尝试加载它时会抛出 bean not found 异常,因为它找不到文件。
找到解决方法
如果我执行以下操作之一,该项目将运行:
- 在 src/main/resources 文件夹下
手动创建 META-INF/build-info.properties - 在 build/resources/main 文件夹下手动创建 META-INF/build-info.properties
不需要这些方法,因为它不会自动更新 build-info.properties
eclipse - 如何在 Eclipse 中可靠地设置编译后字节码增强构建器?
我需要使用一个附加构建器来设置一个 Eclipse 项目,该构建器增强了早期构建器(最好是 Eclipse 自己的)生成的 Java 字节码。我设法让这个构建器正确运行并增强了 Eclipse Java 构建器的输出,但几秒钟后 Eclipse 重新运行了它的 Java 构建器并重新设置了字节码。它不会重新运行我的增强生成器。
我的设置
- 作为“Gradle 项目”导入 Eclipse 2019-12(使用 Buildship)。
- 手动(并使用 Gradle 自动添加)自定义Ant构建器(最终调用 Gradle)以增强 Eclipse Java 构建器在 bin/main 中生成的代码。此构建器设置为在Manual Build和Auto Build上运行,而不是After a "Clean"或during a "Clean"。
- 默认情况下,上面的最终有三个构建器,从上到下:1. Gradle Project Builder, 2.Java Builder和 3.我的字节码增强构建器(是的,它在最后列出)。
我尝试过的替代方案
- 将我的构建器设置为在“清洁”之后/期间运行的一些组合也没有成功。不确定这些与哪些确切事件有关,真的。
- 让建造者在之后刷新项目......而且也没有 - 没有帮助。
尝试使用 Gradle 脚本中的以下位删除 Java Builder(不起作用 - 它会自行恢复):
/li>尝试手动禁用 Java 构建器并让我的字节码增强构建器也构建文件本身(使用 Gradle)。这将存储
/li>org.eclipse.jdt.core.javabuilder.launch
具有以下内容的以下文件文件...但重新启动构建器时会重新启用:我尝试(但失败)查找是否有一些工作区文件(而不是项目文件)被更改(以及)以禁用 Java 构建器。
问题
- 为编译后字节码增强设置 Eclipse 的“正确”方法是什么?
- 是什么导致 Eclipse 重新运行以前的构建器而不重新运行我的?
- 有没有办法解决(1)?
- 如何可靠地禁用 Java 构建器?
任何人都可以帮忙吗?谢谢!
更新附加细节 我添加了 12 个构建器,并让它们都将输出附加到同一个日志文件以进行研究。12 个额外的构建器只是提供信息 - 4 个在 Java 构建器之前,4 个在 Java 和增强构建器之间,4 个在增强构建器之后。12 个中的每一个都只在四种条件之一中运行(因此为 3x4)。它们排列如下:
- Gradle 项目生成器
- 1a-after-clean(仅在 "Clean" 之后运行)
- 1b-manual(仅在手动构建期间运行)
- 1c-auto(仅在自动构建期间运行)
- 1d-during-clean(仅在 "Clean" 期间运行)
- Java 生成器
- 2a-after-clean(仅在 "Clean" 之后运行)
- 2b-manual(仅在手动构建期间运行)
- 2c-auto(仅在自动构建期间运行)
- 2d-during-clean(仅在 "Clean" 期间运行)
- 字节码增强生成器
- 3a-after-clean(仅在 "Clean" 之后运行)
- 3b-manual(仅在手动构建期间运行)
- 3c-auto(仅在自动构建期间运行)
- 3d-during-clean(仅在“清洁”期间运行)
12 个信息构建器中的每一个都写下时间、名称和所选测试类的大小。未增强的长度为 46243 字节。增强后它变为 53338 字节长。
这是仅在此项目上运行“清理”后的日志(启用“自动构建”):
更新 2:重现的最小示例
- 创建一个文件夹 - 随意命名。
在该文件夹中创建包含以下内容的build.grade文件:
/li>在那里也创建一个 src/main/java/learner/TestEntity.java 如下:
/li>执行
gradle compileJava
。build/classes/java/main/learner/TestEntity.class
在 ASCII 或十六进制查看器中打开生成的二进制文件并观察$$_hibernate_write_name
其中的内容。- 将此项目作为 Gradle 项目导入 Eclipse(比如 2019-12)并构建它。打开结果
bin/main/learner/TestEntity.class
并观察不到这些。