Tengo un archivo *.jar en mi proyecto Gradle/Buildship que reside en una carpeta lib . Lo incluyo en mi build.gradle a través de:
compile files('libs/local-lib.jar')
También tengo un archivo local-lib-sources.jar correspondiente que me gustaría adjuntarle. En Eclipse, para las dependencias administradas manualmente, esto funciona a través del menú contextual de la entrada de ruta de compilación -> Propiedades -> Adjunto de fuente Java. Sin embargo, para las dependencias administradas por gradle, esa opción no está disponible.
¿Alguien sabe cómo se ve la forma gradle/buildship de hacer esto? Mi dependencia no está en ningún repositorio, por lo que estoy atascado con compile files por ahora.
Si desea utilizar Buildship con Eclipse, no tiene suerte, ya que actualmente Gradle no lo admite (consulte https://discuss.gradle.org/t/add-sources-manually-for-a-dependency-which- falta-de-ellos/11456/8 ).
Si está de acuerdo con no usar Buildship y generar manualmente los archivos de puntos de Eclipse, puede hacer algo como esto en su build.gradle:
apply plugin: 'eclipse' eclipse.classpath.file { withXml { xml -> def node = xml.asNode() node.classpathentry.forEach { if(it.@kind == 'lib') { def sourcePath = it.@path.replace('.jar', '-sources.jar') if(file(sourcePath).exists()) { it.@sourcepath = sourcePath } } } } } Luego ejecutaría gradle eclipse desde la línea de comando e importaría el proyecto a Eclipse usando Importar -> "Proyectos existentes en el espacio de trabajo"
Otra opción (posiblemente mejor) sería usar un repositorio de archivos planos como este:
repositories { flatDir { dirs 'lib' }consulte https://docs.gradle.org/current/userguide/dependency_management.html#sec:flat_dir_resolver
Entonces simplemente incluiría su dependencia como cualquier otra; en tu caso:
compile ':local-lib' De esta manera, Buildship encontrará automáticamente los archivos -sources.jar , ya que flatDir actúa como un repositorio normal en su mayor parte.
Use una carpeta adicional llamada lib o similar en el mismo nivel de directorio que src o cree el script.
dependencies { //local file compile files('lib/local-lib-sources.jar') // others local or remote file }