studio programar para ndk java android eclipse gradle annotation-processing

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í.