Cuando usa Maven en un IDE, a menudo encuentra la necesidad de que su IDE resuelva el código fuente y los Javadocs para las dependencias de su biblioteca. Hay una manera fácil de lograr ese objetivo.
El primer comando intentará descargar el código fuente para cada una de las dependencias en su archivo pom.
El segundo comando intentará descargar los Javadocs.
Maven está a merced de los empaquetadores de la biblioteca aquí. Entonces, algunos de ellos no tendrán el código fuente empaquetado y muchos de ellos no tendrán Javadocs.
En caso de que tenga muchas dependencias, también podría ser una buena idea usar inclusiones / exclusiones para obtener artefactos específicos, el siguiente comando, por ejemplo, solo descargará las fuentes para la dependencia con un artifactId específico:
Los coloca en el mismo directorio que los JAR binarios en M2_HOME.
Alain O'Dea
19
Si está utilizando eclipse, puede ser útil también hacer "mvn eclipse: eclipse" luego y luego actualizar su proyecto en eclipse, lo que le ahorra adjuntar fuentes manualmente a cada archivo.
unigeek
1
No puedo encontrar las fuentes y los javadocs después de descargarlos. He revisado todos los directorios en M2_HOME
Patrick Kiernan
2
Después de mvn dependency:resolve -Dclassifier=javadocIntelliJ IDEA se da cuenta automáticamente de los javadocs, lo cual es muy bueno.
Jonik
89
Configuración y ejecución del complemento maven-eclipse (por ejemplo, desde la línea de comandos mvn eclipse:eclipse)
¿Qué quieres decir? ¿Quiere decir que las fuentes y los documentos se descargan cuando ejecuta mvn eclipse:eclipsesi agrega esto al archivo POM?
Lii
3
Si. Simple como eso.
RobAu
@RobAu, ¿dónde se descargará la fuente, se adjuntará al proyecto por sí mismo o en otro lugar?
Jaskey
1
Se descargará como jar en tu M2_REPOcomo xxxx-yy-sources.jar, en la misma ubicación que el jar normal. Se adjuntará como código fuente para el jar xxxx-yy en las bibliotecas
RobAu
1
@KanagaveluSugumar necesita agregar el M2_REPO al eclipse, y luego simplemente actualizar el proyecto.
RobAu
36
Si un proyecto crea un frasco de las fuentes del proyecto y lo implementa en un repositorio Maven, lo encontrará :)
Solo para su información, los artefactos de fuentes generalmente son creados por el complemento de fuente maven . Este complemento puede agrupar las fuentes principales o de prueba de un proyecto en un archivo jar y, como se explica en Configuración del complemento de origen :
(...) El archivo jar generado se nombrará con el valor de finalName"-sources" más si son las fuentes principales. De lo contrario, sería finalNamemás "-test-sources" si son las fuentes de prueba.
El texto adicional que se proporcionó para describir un artefacto ("-sources" o "-test-sources" aquí) se denomina clasificador.
Para declarar una dependencia en un artefacto que usa un clasificador, simplemente agregue el <classifier>elemento. Por ejemplo:
Tenga en cuenta que generalmente no hace esto, la mayoría de los IDE brindan soporte para descargar fuentes (y / o JavaDoc) del artefacto principal sin declarar explícitamente una dependencia de ellos.
Finalmente, también tenga en cuenta que algunos motores de búsqueda de repositorio permiten buscar artefactos utilizando el clasificador (al menos Nexus lo hace con la búsqueda avanzada). Ver esta búsqueda por ejemplo.
En lugar de descargar fuentes para todas las dependencias, ¿es posible descargar solo algunas dependencias al especificarlas en pom junto con la dependencia en sí, puede b a través de alguna etiqueta interna en la etiqueta de dependencia o algo similar?
nanosoft
Este complemento está retirado
kiltek
18
Para descargar alguna fuente específica o javadoc necesitamos incluir los GroupIds - Es un valor separado por comas como se muestra a continuación
Tenga en cuenta que el clasificador no está separado por comas, para descargar el javadoc necesitamos ejecutar el comando anterior una vez más con el clasificador como javadoc
En lugar de descargar fuentes para todas las dependencias, ¿es posible descargar solo algunas dependencias al especificarlas en pom junto con la dependencia en sí, puede b a través de alguna etiqueta interna en la etiqueta de dependencia o algo similar?
Esto coloca el artefacto dado en su repositorio local de Maven, es decir, generalmente $HOME/.m2/repository.
dependency:sources simplemente descarga las fuentes de las dependencias del proyecto, no las fuentes de los complementos ni las fuentes de dependencias definidas dentro de los complementos.
Esta es la única solución que funcionó para mí. Estoy usando Eclipse Kepler. Dado que esto hace referencias adecuadas en el .classpath . Como el siguiente:
Cuando seguí la respuesta de @ RobAu, solo los documentos de Hibernate se descargan del repositorio, no Spring . Luego visito el enlace que ha proporcionado y seguido @ mrembisz y hago cambios a las preferencias de Maven y funciona de maravilla . Tengo Spring Docs . @ Stefan De Boey Gracias por compartir esto. +1.
OO7
9
si está utilizando eclipse, también puede abrir Preferencias> Maven y seleccionar Descargar fuentes de artefactos, esto dejaría intacto el pom.xml y mantendría sus fuentes o documentos de Java (si está seleccionado) solo para el desarrollo justo en la ubicación de su máquina ~ / .m2
Desmarqué 'descargar fuentes de artefactos' en la configuración de eclipse maven, por lo que solo descarga el jar. Pero más tarde, intenté usar esta solución para descargar la fuente, falló sin ningún mensaje. Eliminé la carpeta jar en el repositorio local de maven y descargué el jar nuevamente, luego el jar fuente descargó el éxito. Creo que esto se debe a que el repositorio local de Maven tiene el jar, por lo que no puedo usar este método para descargar la fuente.
franco
4
Puedes, si están subidos. Generalmente se llaman "frameworkname-version-source (s)"
En NetBeans 8 con un proyecto dirigido por Maven, simplemente haga clic contextual en el elemento de la lista de archivos jar de la dependencia en la que esté interesado. EscogerDownload Sources . Espere un momento y NetBeans descargará e instalará automáticamente el código fuente, si está disponible.
Del mismo modo, puede optar Download Javadocpor instalar el documento localmente. Luego puede hacer clic contextual en algún código en el editor y elegir ver JavaDoc.
Basado en ver la consola Maven en Eclipse (Kepler), las fuentes se descargarán automáticamente para una dependencia Maven si intenta abrir una clase de dicha dependencia Maven en el editor para el que aún no tiene las fuentes descargadas. Esto es útil cuando no desea obtener la fuente de todas sus dependencias, pero no sabe cuáles desea con anticipación (y está usando Eclipse).
También he usado el complemento eclipse para llevar el proyecto al espacio de trabajo de eclipse. Como he trabajado en un proyecto diferente, vi que es posible trabajar con eclipse pero sin el complemento maven-eclipse. Eso hace que sea más fácil de usar con diferentes entornos y permite el uso fácil de maven sobre eclipse. Y eso sin cambiar el archivo pom.xml.
Por lo tanto, recomiendo el enfoque de Gabriel Ramírez.
Para la depuración también puede usar un "Java Decompiler" como: JAD y descompilar la fuente sobre la marcha (aunque la fuente generada nunca es la misma que la original). Luego instale JAD como un complemento en Eclipse o su IDE favorito.
De lo contrario, siempre puede "clonar git" el repositorio de github, si está allí, y obtener el código específico.
Según lo explicado por otros, puede usar "mvn dependency: sources" para obtener y generar fuentes jar para la dependencia que está utilizando.
Nota: Algunas dependencias no tendrán sources.jar, ya que esas no contienen código fuente sino un archivo pom. por ejemplo , actuador de arranque con resorte . Como en este caso:
Los POM de inicio son un conjunto de descriptores de dependencia convenientes que puede incluir en su aplicación. Obtiene una ventanilla única para toda la tecnología Spring y relacionada que necesita, sin tener que buscar código de muestra y copiar y pegar cargas de descriptores de dependencia.
Si desea encontrar el archivo jar de origen para cualquiera de los artefactos manualmente, vaya a la ubicación del repositorio de maven para el artefacto en particular y en Archivos, haga clic en 'Ver todo'. Puede encontrar el archivo jar de origen.
Respuestas:
Fuente: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Documentación: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
fuente
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA se da cuenta automáticamente de los javadocs, lo cual es muy bueno.Configuración y ejecución del complemento maven-eclipse (por ejemplo, desde la línea de comandos
mvn eclipse:eclipse
)fuente
mvn eclipse:eclipse
si agrega esto al archivo POM?M2_REPO
como xxxx-yy-sources.jar, en la misma ubicación que el jar normal. Se adjuntará como código fuente para el jar xxxx-yy en las bibliotecasSi un proyecto crea un frasco de las fuentes del proyecto y lo implementa en un repositorio Maven, lo encontrará :)
Solo para su información, los artefactos de fuentes generalmente son creados por el complemento de fuente maven . Este complemento puede agrupar las fuentes principales o de prueba de un proyecto en un archivo jar y, como se explica en Configuración del complemento de origen :
El texto adicional que se proporcionó para describir un artefacto ("-sources" o "-test-sources" aquí) se denomina clasificador.
Para declarar una dependencia en un artefacto que usa un clasificador, simplemente agregue el
<classifier>
elemento. Por ejemplo:Tenga en cuenta que generalmente no hace esto, la mayoría de los IDE brindan soporte para descargar fuentes (y / o JavaDoc) del artefacto principal sin declarar explícitamente una dependencia de ellos.
Finalmente, también tenga en cuenta que algunos motores de búsqueda de repositorio permiten buscar artefactos utilizando el clasificador (al menos Nexus lo hace con la búsqueda avanzada). Ver esta búsqueda por ejemplo.
fuente
El complemento de Maven Idea para IntelliJ Idea le permite especificar si las fuentes y el java doc deben resolverse y descargarse
fuente
Para descargar alguna fuente específica o javadoc necesitamos incluir los GroupIds - Es un valor separado por comas como se muestra a continuación
Tenga en cuenta que el clasificador no está separado por comas, para descargar el javadoc necesitamos ejecutar el comando anterior una vez más con el clasificador como javadoc
fuente
Para descargar cualquier uso de artefactos
Para las fuentes Groovy esto sería
Para el javadoc de Groovy usarías
Esto coloca el artefacto dado en su repositorio local de Maven, es decir, generalmente
$HOME/.m2/repository
.dependency:sources
simplemente descarga las fuentes de las dependencias del proyecto, no las fuentes de los complementos ni las fuentes de dependencias definidas dentro de los complementos.fuente
puede encontrar información en esta pregunta relacionada: Obtenga archivos jar de origen adjuntos a Eclipse para dependencias administradas por Maven
si usa el complemento eclipse maven y luego use 'mvn eclipse: eclipse -DdownloadSources = true'
fuente
si está utilizando eclipse, también puede abrir Preferencias> Maven y seleccionar Descargar fuentes de artefactos, esto dejaría intacto el pom.xml y mantendría sus fuentes o documentos de Java (si está seleccionado) solo para el desarrollo justo en la ubicación de su máquina ~ / .m2
fuente
En eclipse
pom.xml
Run As
->Maven generate-sources
generará la fuente por defecto en la carpeta .m2
Requisito previo:
Maven debe configurarse con Eclipse.
fuente
En eclipse, haga clic en el proyecto y luego:
.
fuente
Puedes, si están subidos. Generalmente se llaman "frameworkname-version-source (s)"
fuente
NetBeans, Context-Click
En NetBeans 8 con un proyecto dirigido por Maven, simplemente haga clic contextual en el elemento de la lista de archivos jar de la dependencia en la que esté interesado. Escoger
Download Sources
. Espere un momento y NetBeans descargará e instalará automáticamente el código fuente, si está disponible.Del mismo modo, puede optar
Download Javadoc
por instalar el documento localmente. Luego puede hacer clic contextual en algún código en el editor y elegir ver JavaDoc.fuente
Basado en ver la consola Maven en Eclipse (Kepler), las fuentes se descargarán automáticamente para una dependencia Maven si intenta abrir una clase de dicha dependencia Maven en el editor para el que aún no tiene las fuentes descargadas. Esto es útil cuando no desea obtener la fuente de todas sus dependencias, pero no sabe cuáles desea con anticipación (y está usando Eclipse).
Terminé usando el enfoque de @ GabrielRamierez , pero emplearé el enfoque de @ PascalThivent en el futuro.
fuente
Si conoce groupId y aritifactId , puede generar una URL de descarga como esta.
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
y obtendrá una página como esta, elija la versión que necesita, ¡simplemente disfrútela!
fuente
También he usado el complemento eclipse para llevar el proyecto al espacio de trabajo de eclipse. Como he trabajado en un proyecto diferente, vi que es posible trabajar con eclipse pero sin el complemento maven-eclipse. Eso hace que sea más fácil de usar con diferentes entornos y permite el uso fácil de maven sobre eclipse. Y eso sin cambiar el archivo pom.xml.
Por lo tanto, recomiendo el enfoque de Gabriel Ramírez.
fuente
Para la depuración también puede usar un "Java Decompiler" como: JAD y descompilar la fuente sobre la marcha (aunque la fuente generada nunca es la misma que la original). Luego instale JAD como un complemento en Eclipse o su IDE favorito.
fuente
Los repositorios de Maven proporcionan una forma sencilla de descargar jar jar de fuentes.
Lo explicaré usando una demostración para "spring-boot-actuator-autoconfigure".
De lo contrario, siempre puede "clonar git" el repositorio de github, si está allí, y obtener el código específico.
Según lo explicado por otros, puede usar "mvn dependency: sources" para obtener y generar fuentes jar para la dependencia que está utilizando.
Nota: Algunas dependencias no tendrán sources.jar, ya que esas no contienen código fuente sino un archivo pom. por ejemplo , actuador de arranque con resorte . Como en este caso:
Referencia: Introducción a los arrancadores de arranque de primavera
fuente
En IntelliJ IDEA, puede descargar fuentes de artefactos automáticamente al importar activando la opción Descargar fuentes automáticamente:
Settings
→Build, Execution, Deployment
→Build Tools
→Maven
→Importing
fuente
Si desea encontrar el archivo jar de origen para cualquiera de los artefactos manualmente, vaya a la ubicación del repositorio de maven para el artefacto en particular y en Archivos, haga clic en 'Ver todo'. Puede encontrar el archivo jar de origen.
fuente