Gradle: объединить банки из подпроектов - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть многомодульный проект Gradle. Проект содержит два подпроекта: приложение с пружинной загрузкой server и npm front-end ui (то есть просто stati c javascript).

Я могу построить оба подпроекта. Я могу определить:

implementation(project(':ui'))

в разделе зависимостей приложения Spring, и я получаю запущенный jar в папке server projects build, успешно обслуживающей интерфейс.

Однако я хочу иметь возможность объединить два не в рамках подпроекта server , а скорее во вложенном проекте.

Я думал о что-то вроде:

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, либо полностью основано c, либо предполагает намного больше, чем то, что я до сих пор понимал.

РЕДАКТИРОВАТЬ:

При моем подходе к решению я получаю следующую ошибку:

Возникла проблема при оценке root project 'webapp ». Не удалось найти реализацию метода () для аргументов [project ': server'] для объекта типа org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

EDIT 2 :

Основная идея c взята из https://ordina-jworks.github.io/architecture/2018/10/12/spring-boot-angular-gradle.html

1 Ответ

1 голос
/ 28 апреля 2020

Не найденный implementation вызван отсутствием плагинов, примененных к вашему проекту root. Конфигурация implementation создается с помощью плагинов java в Gradle.

Для того, что вы пытаетесь достичь, требуется хорошее понимание Gradle и всех магов c, предоставляемых Плагин Spring Boot . Вы фактически пытаетесь воспроизвести часть этой интеграции в своем root проекте без помощи плагинов.

Подход, который мог бы быть проще, - это перенести проект приложения в проект root. а затем использовать пользовательский интерфейс в качестве подпроекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...