问题标签 [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.

0 投票
0 回答
420 浏览

eclipse - buildship 复合构建和 eclipse-wtp 的解决方法

我的 eclipse 工作区中有一个包含 2 个构建(核心和模型)的根项目(web-app),我想在 eclipse-tomcat 中启动 web-app。

web-app的settings.gradle:

文档说 gradle 复合构建不适用于 eclipse-wtp: https ://blog.gradle.org/announcing-buildship-2.0

将 eclipse-wtp 插件应用于包含的构建(核心和模型)有很大帮助。如果没有这个,核心和 models.jar 将不会包含在 wtpwebapps/web-app/WEB-INF/lib 文件夹中。

模型项目是一个 JPA 项目,必须增强。这是通过模型项目中的 gradle 任务完成的,如果模型项目是“独立”构建或使用根项目(war)的复合构建,则可以使用。

如果我查看 wtpwebapps/web-app/WEB-INF/lib 文件夹,我可以看到模型项目没有增强,看起来 models.jar 只是 Eclipse 工作区中模型项目的编译版本。

具有增强功能的正确 jar 文件位于 models/build/libs 中。我正在寻找一种解决方法来解决这个问题,例如以某种方式配置模型项目的 eclipse-wtp 任务

我对 eclipse wtp 配置不太熟悉,所以也许有人可以帮助为 buildship 复合构建限制创建一个解决方法。

0 投票
1 回答
927 浏览

gradle - 如何在 Gradle 中为复合项目创建 WAR?

我正在为 Gradle 使用 Eclipse Buildship V2.1.2。我有两个独立的 Web 项目 P1 和 P2 以及一个项目 P3,它充当所有其他项目的依赖项。我的任务是创建一个主要构建,我可以使用它从 P1 和 P2 构建和生成 WAR 文件以及从 P3 生成 JAR 文件。我应该包含这个 P3 jar 文件作为 P1 和 P2 的依赖项。我创建了一个composite-build具有以下结构的,

复合项目

  • P1

    • 构建.gradle
    • 设置.gradle
  • P2

    • 构建.gradle
    • 设置.gradle
  • P3
    • 构建.gradle
    • 设置.gradle

构建.gradle

设置.gradle

复合项目-> build.gradle:

复合项目-> settings.gradle:

P1 -> build.gradle

现在,如果我运行“复合项目”的构建,所有项目都已配置,但未创建 WAR 文件和 JAR 文件。只有在为该项目运行构建时才会创建战争文件。如何完成这项任务?

0 投票
2 回答
2543 浏览

java - Gradle 正在获取未知的 JVM 选项

当我尝试将 gradle 项目导入 Eclipse IDE 时,出现此错误:

我不知道为什么它会让我出现以下错误:

错误:无法创建 Java 虚拟机。

错误:最大堆大小无效:-Xmx4g

我从未指定过像-Xmx4g. 我不知道他们是从哪里得到的?

0 投票
1 回答
1355 浏览

eclipse - 如何告诉 Eclipse/Buildship/Gradle 将依赖项添加到 Modulepath

我正在尝试使用 Eclipse、Buildship、Gradle 来开发 java 9 应用程序。

Eclipse:氧气建造:2.2.0 Gradle:4.3.1

我正在寻找一种方法来告诉 Buildship/Gradle 将Project 和 External Dependencies添加到Modulepath而不是Classpath

这是我在配置 Eclipse 项目Java Build Path时看到的内容。

当我尝试在module-info.java中引用自动模块 coreutil 时,我收到错误coreutil cannot be resolve to a module

如果我手动将 coreutil-9.4.1.jar 添加到 Modulepath,那么 coreutil 模块就会变得可见。然而,这是一个问题,因为在某些情况下手动添加超过 60 个库是不切实际的。此外,每次我刷新 Gradle 项目时,它们都会从 Modulepath 中删除。

感谢帮助。

盖坦

0 投票
1 回答
14151 浏览

eclipse - 配置 Eclipse 以使用最新版本的 Gradle

我正在重新认识 Gradle。我记得上次使用 2.x 时发现的一个问题是,不仅是项目实现 jar 的多个版本,还有 Gradle 自己的 jar 的多个版本。

这次为了尽量保持干净,我想让 Eclipse 使用最新、最强大的 Gradle,在撰写本文时它是 4.4.1。

我想我知道这是在哪里配置的,如果有人使用 Gradle 包装器:

在这里,我看到了关键的最后一行:

我想我应该做的只是手动将其更改为... gradle-4.4.1-bin.zip...但问题是:Buildship 插件实际上是从哪里获得该行的?

当我查看 Help --> About Eclipse --> Installation Details --> Buildship 时,没有任何关于 Gradle 版本的迹象。

当我转到 Window --> Prefs --> Gradle 时,我发现您分发设置为“Gradle 包装器”(是的,Gradle Goodness)“特定 Gradle 版本”,当前显示的最高版本为 4.4.1。

Eclipse 应该“知道”最新的是 4.4.1 但默认使用 3.5,这似乎很奇怪!

0 投票
1 回答
179 浏览

java - Gradle Buildship 项目依赖周期误报

所以我有一个多项目 gradle 构建,包括:

在哪里myappmyapp2shared.

testLib项目还具有对shared. 它的存在是为了定义一些使用shared类的单元测试帮助代码。这些类存在于其mainsourceSet 中,因为该项目的目的是构建包含测试助手类的库。

现在该shared项目有单元测试。这些测试使用testLib. 因此shared有一个testCompile项目依赖于testLib.

Gradle 对此没有任何问题。它理解首先构建shared,然后构建testLib,然后运行单元测试shared就可以了。 但是, Buildship没有。在我导入构建后,它将此标记为项目依赖周期:“在项目'共享'的构建路径中检测到一个周期。该周期由项目 {shared,testLib} 组成。” 以及该testLib项目的类似信息。

那么,您可能会问,为什么不直接testLib进入测试 sourceSet呢?shared好吧,问题是,一些单元测试帮助代码也被 和 中的单元测试myapp使用myapp2。这两个项目都具有 compile 项目依赖项shared和 testCompile 项目依赖项testLib

有什么方法可以让 Buildship 明白这不是一个真正的项目依赖周期?

编辑:

我在这里尝试了部分解决方案:https : //softnoise.wordpress.com/2014/09/07/gradle-sub-project-test-dependencies-in-multi-project-builds/将我的testLib构建更改为此(将测试助手类从 ) 移回testsourceSet 后main:plugins { id 'java' }

并更改我的shared项目以引用新的testLib-test.jar通过:

仍然没有运气。gradle 再次没有问题并且构建良好,但是在 eclipse 中删除并重新导入项目后,Buildship 返回与以前相同的循环警告。

Buildship只是目前无法处理这种情况吗?

0 投票
1 回答
642 浏览

eclipse - gradle sync error file not found

I've a simple task which creates a bat file with task name which start with "server" and when executing the bat file gradle jobs starts, Code below :

This task used to work a while back but now I started getting this error Sync Failed: File not found StackTrace Below:

I tried delete the .gradle folder in the project work space and re-creating it but it didn't work. restarted machine and eclipse didn't help either.

Update: I'm using gradle 4.5 and This seems to be an Buildship related issue as doing a gradle clean build from cmd works fine. though when using eclipse buildship to a gradle refresh this error comes. eclipse is using local installation of gradle. buildship version:2.2.1

0 投票
0 回答
229 浏览

gradle - 生成的资源不会出现在 eclipse-wtp 发布的 jars 中

我有一个包含两个子项目的项目:一个依赖项 jar 和一个 webapp。我正在使用 eclipse-wtp 插件:

依赖项会生成一些资源(例如,通过下载和解压缩 tarball)。依赖项有一个块来配置生成的资源目录作为输出:

webapp 依赖于依赖:

如果 I ./gradlew build,则 webapp 的战争包含一个 dependency-0.0.1-SNAPSHOT.jar,其中包含生成的文件。

但是如果我在 Eclipse 中将 webapp 发布到 Tomcat,我会得到~/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webapp/WEB-INF/lib/dependency.jar包含生成的文件。它有我的 .java 源文件的 .class 文件,但没有来自 build/generated-resources/main 的资源。尝试加载资源失败 - 它们在 webapp 的类路径中不可用。

如何将生成的资源放入 Eclipse 为 Tomcat 生成的 jar 中?

示例项目:https ://github.com/ms1111/test-gen-resource

2018-02-12 更新

目前无法让 Buildship 运行任务来自动生成资源(#265#266)。

以下块将告诉 Buildship 发布生成的资源:

但是资源必须在 Buildship 生成时已经存在.settings/org.eclipse.wst.common.component,所以需要一个舞蹈:

  1. 导入项目
  2. 运行完整的 gradle 构建
  3. 为具有生成源的任何模块刷新 Gradle
  4. 清理 Tomcat 服务器
0 投票
1 回答
3560 浏览

eclipse - Buildship如何在项目范围内设置环境变量

我们将项目从 ant 切换到 gradle。现在 gradle 脚本看起来像这样

所有任务都严重依赖于环境变量filterFile。我们使用 eclipse (Oxygen.2 Decemeber 2017) 和 buildship (2.2.1 v20180125-1441)

我可以让它工作的唯一方法是在任务级别设置变量见截图

在此处输入图像描述

同样不适用于项目级别: 在此处输入图像描述

在此处输入图像描述

当我现在删除任务上的设置并将其放在项目全局设置上并执行相同的任务时,它会说:

虽然当我在任务级别设置它时这有效。

这是我在 Eclipse 中对 gradle 的偏好设置: 在此处输入图像描述

您能否解释一下如何设置项目范围的环境变量。顺便说一句:我用谷歌搜索了这个问题,发现了主目录 gradle.properties 文件。但我认为这将设置项目变量而不是环境变量。当我们从 ant 切换到 gradle 时,gradle 构建脚本依赖于 System.getProperty('filter.file') 这可能是为 gradle 设置它的错误方法,但它是从 ant 迁移的剩余部分,因此很难我们为每项任务更改它(因为我们有很多任务)。

请指教!

0 投票
2 回答
1279 浏览

eclipse - Buildship 不断覆盖 .classpath

我将 Gradle 和 Eclipse 与 Buildship 插件一起使用。

Buildship 创建.classpath文件供 Eclipse 使用。出于类加载的原因,我需要一个类路径条目 ( com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER) 出现在条目之后。org.eclipse.buildship.core.gradleclasspathcontainer

所以我的文件的相关部分.classpath应该是这样GWT_CONTAINER的(底部有)。

Buildship 始终gradleclasspathcontainer处于最后一个位置。所以我试图在我的build.gradle(摘录)中改变这样的排序:

使用./gradlew eclipseClasspath时,.classpath文件被正确创建。但是一旦 Buildship 运行,文件就会再次被错误的顺序覆盖。

我也尝试过使用whenMerged而不是beforeMerged,但这并没有改变任何东西。

这是由 Buildship 启动时 Gradle 的输出(例如,通过单击 Eclipse 项目属性上的 Gradle -> Refresh):

似乎 Buildship 甚至不执行eclipseClasspath任务,而是.classpath通过其他方式创建文件。

我怎样才能让 Buildship 兑现我的愿望,让类路径按我的方式排序?