Я работаю с Apache Netbeans IDE и использую Gradle в качестве системы сборки для моего Java приложения. Мой проект состоит из основного проекта, содержащего некоторый код GUI и проект под-библиотеки.
Я хочу, чтобы мой проект под-библиотеки автоматически компилировался при сборке моего основного проекта. Какой самый простой способ добиться этого?
Вот файл gradle моего основного проекта:
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'application'
mainClassName = 'ch.minibot32.Launcher'
repositories {
jcenter()
mavenLocal()
mavenCentral()
}
dependencies {
implementation files('../MiniBot32Lib/build/libs/MiniBot32Lib.jar')
compile 'uk.co.electronstudio.sdl2gdx:sdl2gdx:1.0.+'
compile 'com.glazedlists:glazedlists:1.11.0'
compile 'commons-io:commons-io:2.6'
compile 'commons-net:commons-net:3.6'
compile 'org.apache.commons:commons-math3:3.6.1'
compile 'org.apache.commons:commons-lang3:3.9'
compile 'joda-time:joda-time:2.10.5'
testCompile 'junit:junit:4.12'
}
sourceSets {
main {
resources {
srcDir 'res'
}
}
}
jar {
manifest {
attributes 'Main-Class': 'ch.minibot32.Launcher'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
task createFatJar(type: Jar) {
manifest {
attributes 'Main-Class': 'ch.minibot32.Launcher'
}
baseName = 'MiniBot32-Release'
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
Вот файл gradle моего проекта суббиблиотеки:
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'maven'
repositories {
jcenter()
mavenLocal()
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.6'
compile 'commons-net:commons-net:3.6'
compile 'org.apache.commons:commons-math3:3.6.1'
compile 'org.apache.commons:commons-lang3:3.9'
compile 'joda-time:joda-time:2.10.5'
testCompile 'junit:junit:4.12'
}
jar {
from configurations.compile.collect { zipTree it }
}
Обновление A
При использовании предполагаемой команды от Eng.Fouad я получаю следующую ошибку:
> Project with path ':MiniBot32Lib' could not be found in root project 'MiniBot32'.
Моя иерархия папок выглядит следующим образом:
Netbeans_Projects
|_ MiniBot32 <- Main Project
| |_ build
| |_ src
| |_ build.gradle
| |_ settings.gradle
|_ MiniBot32Lib <- Sub Project
|_ build
|_ src
|_ build.gradle
|_ settings.gradle
Обновление B
Кроме того, после определения rootProject
мне пришлось добавить следующее к settings.gradle
:
include ':MiniBot32Lib'
project(':MiniBot32Lib').projectDir = new File('../MiniBot32Lib')
Спасибо Eng.Fouad!