Gradle: 合并来自子项目的 jar

Gradle: Combine jars from sub-projects

我有一个多模块 gradle 项目。该项目包含两个子项目,即 spring-boot application server 和 npm front-end ui(其中只是静态的 javascript).

我可以uild 两个子项目。我可以定义:

implementation(project(':ui'))

在 spring 应用程序的依赖项部分,我在 server 项目 build 文件夹中得到一个 运行 jar,成功地为前端。

但是,我希望能够不在 server 子项目中合并两个 not,而是在封闭的项目。

我想到了类似的东西:

build.gradle:

allprojects {
    group = 'com.example.webapp'
    version = '0.0.1-SNAPSHOT'
}

dependencies {
    implementation(project(':server'))
    implementation(project(':ui'))
}

settings.gradle:

rootProject.name = 'webapp'
include 'server', 'ui'

我想,我完全错了。我发现的关于 gradle 的所有内容要么是完全基础的,要么比我目前所了解的要多得多。

编辑:

我的解决方法出现以下错误:

A problem occurred evaluating root project 'webapp'. Could not find method implementation() for arguments [project ':server'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

编辑 2:

基本思路来自https://ordina-jworks.github.io/architecture/2018/10/12/spring-boot-angular-gradle.html

未找到 implementation 是由于缺少应用于您的根项目的插件造成的。 implementation 配置由 Gradle 中的 java 插件创建。

您要达到的要求uires 很好地理解 Gradle 和 Spring Boot plugin 提供的所有魔法。 在没有插件帮助的情况下,您正在有效地尝试在您的根项目中重现一些集成。

一种可能更简单的方法是将您的应用程序项目迁移为根项目,然后将 ui 作为子项目。