2012-04-14 19 views
35

Idealmente, nos gustaría agregar una tarea para descargar todos los archivos fuente para el primer nivel y las dependencias transitivas de nuestro proyecto. ¿Hay una manera de hacer eso?cómo decirle a gradle que descargue todos los archivos fuente

Si no, ¿hay una opción de línea de comandos para suministrar como Maven tiene que obtener todas las fuentes descargadas en nuestras máquinas?

Parece que debería ser el valor predeterminado en estos días, al menos para las dependencias de primer nivel, ya que le da el javadoc en eclipse, que es muy bueno cuando se hace el código de finalización.

+0

:) Solo quería llamar su atención sobre [esta sección] (http://stackoverflow.com/faq#signatures) de las preguntas frecuentes con respecto al uso de firmas; sus preguntas y respuestas en StackOverflow ya están "firmadas" con su tarjeta de usuario, por lo que las firmas en el post son innecesarias. – simont

+1

bueno, eso solo apesta ... una firma es algo que aparece EN tu publicación, no es algo que tienes que hacer clic en un enlace para llegar ... la velocidad a la que se lee la firma disminuye debido a la barrera de esa enlace (de hecho, probablemente caiga en un 90% más o menos :(lo cual es muy desafortunado ya que stackoverflow podría ayudar a muchas personas con firmas REALES). –

+0

Consulte esta respuesta si está utilizando el contenedor Gradle: https: // stackoverflow .com/a/46596203/924597 – Shorn

Respuesta

22

Si usa Eclipse y desea navegar por el código fuente de sus dependencias allí, entonces el plugin de Eclipse hace esto por usted.

Instale el complemento eclipse agregando apply plugin: "eclipse" a su archivo build.gradle. Luego ejecute gradle eclipse para generar los archivos Eclipse .project, .classpath y .settings. El complemento descargará automáticamente todas las fuentes disponibles y las agregará en el archivo .classpath (consulte el atributo sourcepath del elemento classpathentry).

Para importar el proyecto a Eclipse, elija File > Import... > Existing Projects into Workspace y seleccione su proyecto.

(No estoy seguro de si el complemento de Idea hace lo mismo para los usuarios de Idea, pero puede hacerlo).

+0

Sí, en mi experiencia, Gradle descarga la fuente .jar y también vincula la fuente en la configuración de la ruta de compilación para que pueda depurar el código fuente. – djangofan

+2

Una cosa a tener en cuenta: después de limpiar mi gradle cache tuve que 'gradle cleanEclipse eclipse' y luego cerrar y reabrir el proyecto de eclipse para obtener eclipse para ver la fuente de nuevo. – iain

+0

¿Qué pasa con Android Studio? Después de una pequeña investigación, creo que no se puede hacer ... –

33

La tarea de eclipse se puede configurar con downloadSources. A continuación se presenta un ejemplo de que la configuración

apply plugin: 'java' 
apply plugin: 'eclipse' 

eclipse { 
    classpath { 
     downloadSources=true 
    } 
} 

Así que corre

gradle cleanEclipse eclipse 

que tienen que descargar fuentes.

+8

Este es el comportamiento predeterminado de acuerdo con http://gradle.org/docs/current/dsl/org.gradle .plugins.ide.eclipse.model.EclipseClasspath.html # org.gradle.plugins.ide.eclipse.model.EclipseClasspath: downloadSources –

6

comentario de Piohen anterior debería ser su propia respuesta (ya que era la única solución que funcionó para mí)

  1. Haga clic derecho en su proyecto, a continuación, seleccione "Build Path" -> "Configuración Vía de construcción";
  2. Seleccione "Solicitar y exportar"
  3. Seleccione "Bibliotecas de aplicaciones web" y haga clic en el botón "Inferior", luego las "Bibliotecas de aplicaciones web" estarán en la parte inferior;

Y para conseguir esto en el plug-in de Eclipse Gradle (por lo que no es necesario hacerlo manualmente cada vez):

Why is Eclipse not attaching 3rd party libs source files to a WTP-faceted Gradle project?

15

Otra captura no se ha mencionado en otras respuestas es cuando se está usando el repositorio mavenLocal() en su archivo gradle.build. Si hay un contenedor descargado en ese repositorio maven local pero no hay fuentes descargadas o javadocs en ese repositorio, entonces gradle ni siquiera intentará descargar javadocs o fuentes para usted. Incluso con habilitado eclipse.classpath.downloadJavadoc y eclipse.classpath.downloadSources.

La solución es eliminar mavenLocal() de repositories o colocarlo en la parte inferior de la lista. O puede setup maven para descargar fuentes y javadocs y limpiar su repositorio local de maven (~/.m2/repository).

Una descripción más detallada del problema es here.

+3

Eso fue todo. _La solución es eliminar mavenLocal() de los repositorios o colocarlo en la parte inferior del ¡list_ trabajó para mí! – adarshr

+0

¡Hiciste mi día! – Tommaso

+0

Maravilloso, después de dos días de búsqueda, esto funcionó para mí. –

7

Aquí es cómo agregar la configuración requerida en Gradle el uso de plugins Los idus:

Para Eclipse:

apply plugin: 'java' 
apply plugin: 'eclipse' 

eclipse { 
    classpath { 
     downloadJavadoc = true 
     downloadSources = true 
    } 
} 

Para IntelliJ

apply plugin: 'java' 
apply plugin: 'idea' 

idea { 
    module { 
     downloadJavadoc = true 
     downloadSources = true 
    } 
} 

Para ejecutar estos plugins:

gradle cleanEclipse eclipse 
gradle cleanIdea idea 
Cuestiones relacionadas