我有一个模块化项目,我决定将它分发给模块。服务器和客户端。
现在有一个问题。如何从另一个模块调用依赖任务?
parent build.gradle
plugins {
id "net.ltgt.apt" version "0.14"
}
apply from: "$rootDir/gradle/idea.gradle"
group 'com.test.portal'
version '1.0-SNAPSHOT'
allprojects {
apply plugin: 'net.ltgt.apt'
}
subprojects {
apply from: "$rootDir/gradle/versions.gradle"
apply from: "$rootDir/gradle/java.gradle"
repositories {
mavenCentral()
mavenLocal()
jcenter()
}
}
java.gradle
def generatedDir = new File("$projectDir", "src/generated")
apply plugin: 'java'
sourceSets {
generated {
java.srcDir "src/generated/java"
}
main.java.srcDirs = ['src/main/java', "src/generated/java"]
main.resources.srcDir "src/main/resources"
test.java.srcDir "src/test/java"
test.resources.srcDir "src/test/resources"
}
// deletes generated classes before new compilation
task deleteGenerated(type: Delete) {
generatedDir.deleteDir()
}
compileGeneratedJava {
dependsOn('deleteGenerated')
}
compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
options.encoding = 'UTF-8'
options.compilerArgs = ['-Xlint:unchecked'] // Just a smoke test that using this option does not lead to any
options.annotationProcessorGeneratedSourcesDirectory = new File("$generatedDir", "java")
dependsOn(processResources, compileGeneratedJava)
source += sourceSets.generated.java
source += sourceSets.generated.output
}
test {
systemProperties = System.properties
}
我有2个子模块
GWT
的build.gradle
apply from: "$rootDir/gradle/gwt.gradle"
dependencies {
...
}
compileGwt {
classpath {
[
sourceSets.main.java.srcDirs, // Java source
sourceSets.main.output.resourcesDir, // Generated resources
sourceSets.main.output.classesDir, // Generated classes
sourceSets.main.compileClasspath, // Deps
]
}
}
gwt.gradle
task compileGwt(dependsOn: classes, type: JavaExec) {
ext.buildDir = "${project.buildDir}/gwt"
ext.extraDir = "${project.buildDir}/extra"
inputs.file sourceSets.main.java.srcDirs
inputs.dir sourceSets.main.output.resourcesDir
outputs.dir buildDir
doFirst {
file(buildDir).mkdirs()
}
main = "com.google.gwt.dev.Compiler"
classpath {
[
sourceSets.main.java.srcDirs, // Java source
sourceSets.main.output.resourcesDir, // Generated resources
sourceSets.main.output.classesDir, // Generated classes
sourceSets.main.compileClasspath, // Deps
]
}
if (project.hasProperty('dev')) {
println "Run developer mode"
args = [
"com.test.portal.AppClientModule",
"-war", buildDir,
"-logLevel", "INFO",
"-localWorkers", "4",
"-compileReport",
"-extra", extraDir,
"-style", "OBF",
"-optimize", "9" // 0=none, 9=max
]
} else {
println "Run production mode"
args = [
"com.test.portal.AppClientModule",
"-war", buildDir,
"-logLevel", "INFO",
"-localWorkers", "4",
"-compileReport",
"-extra", extraDir,
"-style", "OBF",
"-optimize", "9" // 0=none, 9=max
]
}
maxHeapSize = "4G"
}
服务器
gradle.build
plugins {
id "org.springframework.boot" version "1.5.10.RELEASE"
}
dependencies {
...
}
jar.dependsOn compileGwt
jar {
into("static") {
from compileGwt.buildDir
}
}
问题: