问题标签 [gradle-multi-project-build]
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 - Jib gradle 插件多模块项目 ClassNotFoundException
我有多模块 gradle 项目并使用 Jib 插件构建 docker 映像并推送到注册表。
但是,当我构建图像并尝试运行这个图像时,我得到了这个异常:
错误:无法找到或加载主类 Xmx512m
引起:java.lang.ClassNotFoundException: Xmx512m
这是我的根 build.gradle 文件:
根设置.gradle
此项目之一的 build.gradle 文件。(除了依赖之外,它们都是相同的):
找不到任何解决方案。尝试了很多事情,但一次又一次地遇到这个异常。
注意:使用 jib 版本:2.6.0
java - 如何在 Gradle 多项目构建中引用其他 classesdir
我正在使用 Spring Boot 构建 API。我正在使用 gradle 和一个多项目构建设置,其中我有一个services-lib项目和一个依赖于services-lib的api项目。
在 api 项目中运行api:bootRun任务工作得很好,但现在我正在尝试添加触发 spring-boot-devtools自动重启的能力,这需要 bootRun 任务在它的类路径中包含service-lib类目录(不是多项目依赖添加的jar)。
将此添加到我的 api 的 build.gradle 确实会在我运行 api:build 任务时触发自动重启(其中“C:/foo/bar”是我的多项目根目录的绝对路径)。
我的问题是,我可以使用 project(':services-lib') 之类的东西来设置它,而不是硬编码该路径吗?
kotlin - 如何在子模块之间共享 kotlin 多平台目标?
在永恒之后,我设法建立了一个 kotlin 多平台和多模块项目。由于几乎没有适当的指南或文档,我只有一个无法解决的问题。我可以在子模块之间共享 kotlin 多平台目标吗?
现在每个子模块都有一个build.gradle.kts
包含:
显然,我希望所有模块都使用相同的版本编译到相同的平台,并且最好不要为每个模块复制此代码段。更不用说测试依赖项也是相同的。
gradle - 使用公共项目发布 gradle 子项目工件
考虑以下项目结构:
设置.gradle
build.gradle (subprojA)
build.gradle (subprojB)
运行./gradlew subprojA:uploadArchives
和./gradlew subprojB:uploadArchives
另一个项目,尝试导入任何 repo 中不可用的com.abc:subprojB:x.y.z
抱怨。subprojA
我想要什么:在我的本地,我希望 subprojB 指向本地 subprojA 以便于开发,但是在将 subprojB 发布到工件时,我希望它创建对com.abc:subprojA:x.y.z
.
gradle - Gradle:从子项目工件和依赖项创建 zip
我通过以下方式(Kotlin DSL)从 gradle kotlin 项目工件和依赖项创建一个 zip:
现在我需要在父项目中执行相同的操作,以将所有工件和所有子项目的编译时间依赖项收集到同一个 Zip 文件中。如何遍历 Kotlin DSL 中的所有子项目以创建 Fat Zip?
android-studio - Android Studio gradle 多模块编译但找不到类
我有一个带有我也开发的库的 android 应用程序。
当我通过这样的 Maven 存储库添加该库时:
一切正常,它编译并且库的类被 IDE 找到,我可以像往常一样工作。
问题是当我使用该库并使用应用程序对其进行测试时。
在这种情况下,我为此更改了上述行:
在settings.gradle
文件中我也有这个:
奇怪的是它编译得很好,我可以运行应用程序并测试我在 myLib 中所做的更改,但问题是 IDE(Android Studio)没有找到 myLib 的类/包。这使得几乎不可能工作,因为没有导入类,没有识别方法和属性...... IDE 以红色下划线显示与 myLib 相关的所有内容。
我试过了:
- 多次同步 Gradle 项目
- 清洁项目
- 重建项目
- 使缓存无效并重新启动
- ./gradlew clean 后跟 ./gradlew build
IDE 仍然无法识别 myLib。
我认为这可能与 Android Studio、Android Gradle 插件或 Gradle 版本本身有关并进行了更新,因为我使用这种配置工作得很好。我能记得的唯一改变的是上面提到的。
FWIW 我正在使用 Android Studio 4.2.1、AGP 4.2.1 和 Gradle 6.8.3
java - 如何从 Gradle 多项目创建 Java fat jar?
使用 Gradle 7.2 和 Java 11,我按照以下说明创建了一个 Java 应用程序多项目:https ://docs.gradle.org/current/samples/sample_building_java_applications_multi_project.html
我想创建一个包含所有依赖项的胖 jar,这样我就可以通过简单地调用来运行我的应用程序:java -jar app.jar
我尝试将此行添加到app/build.gradle
:
当我从基本目录构建项目时./gradlew clean build
,构建成功,但是当我转到app/build/libs
不app.jar
包含所有依赖项并且尝试运行它时,我收到以下错误:
app.jar 中没有主清单属性
我该如何解决这个问题?
gradle - Gradle 多模块项目:如何访问另一个模块的 ./build 目录?
就像问题标题一样,我有一个Gradle
由 2 个模块组成的多模块项目:api
和service
. 从service
模块中,我试图访问api
其./build
目录下的模块内生成的代码。有谁知道我该怎么做?我一直在从Gradle
的文档中搜索,但找不到任何解决方案,而且我觉得Gradle
没有制作足够的关于这个主题的文档。
有一种解决方案,我可以将内容从一个./build
目录复制到另一个目录,但这会使整个应用程序变得更重并影响应用程序的性能。
kotlin - 如何创建依赖于 Kotlin 项目中 JS 的 Gradle 项目?
我正在使用 Kotlin 在我的后端(Java Spring Web)和前端之间共享逻辑。让 Java 后端调用 Kotlin 逻辑很容易:我制作了同一个 Gradle Multiproject 构建的两个部分,并使服务器项目依赖于 Kotlin 项目。
现在我需要将生成的 JavaScript 从 Kotlin 中取出并转换成服务器可以提供的格式。查看服务器的 Gradle 输出 jar,它只有 jvm jar,没有 js jar。
gradle - Gradle 预编译脚本插件:未找到外部 Quarkus 插件依赖项
背景
我目前正在开发一个带有多个 quarkus 微服务的 gradle 多项目。为了捆绑我的 quarkus 依赖项,我使用预编译脚本插件和kotlin-dsl
. 鉴于以下配置,执行quarkusBuild
工作正常。
问题
执行quarkusDev
微服务子项目的任务失败
Unable to find quarkus-gradle-plugin dependency in project ':microservice'
你知道为什么会这样吗?我已经为此投入了几个小时,但我仍然不明白它为什么会失败。https://github.com/quarkusio/quarkus/issues/12509似乎是相关的,但建议的解决方案对我不起作用。任何帮助是极大的赞赏!
编辑
gradle.plugin.io.quarkus:quarkus-gradle-plugin:2.2.3.Final
我意识到and之间可能存在差异io.quarkus:gradle-application-plugin:2.2.3.Final
,但是交换依赖项并没有多大帮助。
配置
这是我的项目的最小版本,它允许重现错误。
这个最小的例子也可以在这里查看:https ://github.com/lorenzjosten/gradle-plugin-quarkus
rootProject/buildSrc/src/main/kotlin/quarkus-conventions.gradle.kts
rootProject/buildSrc/build.gradle.kts
rootProject/buildSrc/gradle.properties
rootProject/microservice/build.gradle.kts
rootProject/settings.gradle.kts
rootProject/build.gradle.kts
rootProject/gradle.properties