Я только что поменялся с maven на gradle, потому что думал, что это хорошая идея, так как я не мог решить свою проблему с maven. Ну, Gradle тоже не решил мою проблему (вот почему ты здесь, смеется), но это быстрее, и я буду продолжать его использовать.
Вот что я получил:
project/
├── components/
│ ├── Software Component A
│ └── Software Component B
└── modules/
├── Module A
├── Module B
├── Module C
└── Module D
Программные компоненты включают в себя модули, которые являются универсальными для всего проекта. Я хочу иметь возможность запускать программное обеспечение с IntelliJ по причинам, связанным с тестированием, и хочу создать два отдельных фляги для компонентов программного обеспечения.
И вот как далеко я продвинулся с меньшим набором проектов для тестирования, переименованным вих роль:
это конфигурация gradle для корневого проекта:
// build.gradle
plugins {
id 'java'
id 'io.freefair.lombok' version '4.1.1'
}
subprojects {
apply plugin: 'java'
apply plugin: 'io.freefair.lombok'
sourceCompatibility = '1.8'
group = 'io.cloudsystem'
version = '2.0.0'
compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
javadoc.options.encoding = 'UTF-8'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.2'
}
}
test {
useJUnitPlatform()
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
// settings.gradle
rootProject.name = 'gradle_root_project'
include 'module_a', 'module_b', 'module_c', 'software_component_a'
и это для компонента программного обеспечения (настройки всегда только: rootProject.name = 'projectname'
)
// build.gradle
plugins {
id 'application'
}
application {
mainClassName = 'io.cloudsystem.Controller'
}
dependencies {
implementation project(':ModuleLoader')
implementation project(':TerminalModule')
implementation project(':NetworkModule')
}
Теперь все это строится с gradle build
, но все, что я получаю, это набор бесполезных jar-файлов ... компонент не запускается, корневой файл - это только пустой манифест, и когда я запускаю проект в IntelliJ (работает только тогда, когдаЯ открыл корневой проект, в противном случае отсутствуют импортные данные) выходные данные странные / отображаются неправильно или даже не отображаются.