java - programar - ¿Cómo puedo agregar una carpeta de origen generada a mi ruta de origen en Gradle?
c++ android studio (4)
Yo uso el procesamiento de anotaciones. Por eso uso el plugin apt . Genera nuevas fuentes java en build/source/apt
.
Aquí está mi build.gradle:
apply plugin: ''java''
apply plugin: ''eclipse''
apply plugin: ''apt''
apply plugin: ''war''
apply plugin: ''gwt''
apply plugin: ''jetty''
sourceCompatibility = 1.7
version = ''1.0''
eclipse {
classpath {
downloadSources=true
downloadJavadoc=true
}
}
buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath ''de.richsource.gradle.plugins:gwt-gradle-plugin:0.6''
classpath ''com.jimdo.gradle:gradle-apt-plugin:0.5-SNAPSHOT''
}
}
repositories {
mavenCentral()
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
apt ''com.google.dagger:dagger-compiler:2.0-SNAPSHOT:jar-with-dependencies''
compile ''com.google.guava:guava:18.0''
compile ''com.google.guava:guava-gwt:18.0''
compile ''javax.inject:javax.inject:1''
compile ''com.google.dagger:dagger:2.0-SNAPSHOT''
}
gwt {
gwtVersion=''2.7.0''
logLevel = ''INFO''
minHeapSize = "512M";
maxHeapSize = "1024M";
compiler {
strict = true;
}
modules ''test.GWTT''
}
tasks.withType(de.richsource.gradle.plugins.gwt.AbstractGwtActionTask) {
args ''-XjsInteropMode'', ''JS''
}
Necesito que estas fuentes estén disponibles en mi proyecto para que eclipse pueda encontrarlas y para que se incluyan al compilar el proyecto. ¿Cómo puedo hacer eso?
Editar: utilizando
sourceSets {
apt{
java{
srcDir ''build/source/apt''
}
}
}
Lleva a los siguientes errores al ejecutar la gradle build
:
Compiling module test.GWTT
Tracing compile failure path for type ''test.client.GWTT''
[ERROR] Errors in ''file:/Users/mg/Documents/Grails/GGTS3.6.2/TestGradle2/src/main/java/test/client/GWTT.java''
[ERROR] Line 17: No source code is available for type test.client.test2.Dagger_MyWidgetGinjector; did you forget to inherit a required module?
Finding entry point classes
Tracing compile failure path for type ''test.client.GWTT''
[ERROR] Errors in ''file:/Users/mg/Documents/Grails/GGTS3.6.2/TestGradle2/src/main/java/test/client/GWTT.java''
[ERROR] Line 17: No source code is available for type test.client.test2.Dagger_MyWidgetGinjector; did you forget to inherit a required module?
[ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
:compileGwt FAILED
Usando el anterior Eclipse encuentra las fuentes de los archivos generados, pero la compilación no.
Intente definir un conjunto de fuentes personalizado para las clases de salida. Algo como:
sourceSets {
apt{
java{
srcDir ''build/source/apt''
}
}
}
deberías acercarte. Para obtener más detalles, consulte la sección de conjuntos de fuentes (23.7) de los documentos del plugin java gradle para obtener más detalles.
Lo que otros respondieron sobrescribe mis directorios originales, por lo que encontré una solución alternativa: si no desea sobrescribir la lista de directorios original, puede hacerlo de la siguiente manera:
sourceSets.main.java.srcDirs += myDir
sourceSets.main.kotlin.srcDirs += myDir
La clave es usar +=
aquí. Es esencialmente lo mismo que decirlo así:
sourceSets {
main {
java.srcDirs += myDir
kotlin.srcDirs += myDir
}
}
Para daga 2 con plug de tarro puedes poner
sourceSets.main.java.srcDirs = [''build/generated/source/apt/main'',''src/main/java'']
en el build.gradle
sourceSets.main.java.srcDirs = [''build/generated-sources/xjc'',''src/main/java'']
funcionó para mí.