java - tutorial - Obtener fuente JARs desde el repositorio de Maven
maven tutorial pdf (15)
¿Alguien tiene alguna idea si puede encontrar archivos JAR de origen en los repositorios de Maven?
Maven Micro-Tip: Obtén fuentes y Javadocs
Cuando utiliza 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.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
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í. Así que 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 puede ser una buena idea utilizar inclusiones / exclusiones para obtener artefactos específicos, el siguiente comando, por ejemplo, solo descargará las fuentes de la dependencia con un artefacto específico:
mvn dependency:sources -DincludeArtifactIds=guava
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
NetBeans, Context-Click
En NetBeans 8 con un proyecto impulsado por Maven, simplemente haga clic de contexto en el elemento de la lista de archivos jar de la dependencia en la que está interesado. Elija Download Sources
. Espere un momento y NetBeans descargará e instalará automáticamente el código fuente, si está disponible.
Del mismo modo, puede elegir Download Javadoc
para obtener el documento instalado localmente. Luego, puede hacer un clic contextual en algún código del editor y elegir ver el JavaDoc.
Al ejecutar Eclipse desde la línea de comandos ( mvn eclipse:eclipse
)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
Basándose en la visualización de la consola de Maven en Eclipse (Kepler), las fuentes se descargarán automáticamente para una dependencia de Maven si intenta abrir una clase de dicha dependencia de Maven en el editor para el que aún no tiene las fuentes descargadas. Esto es útil cuando no desea capturar la fuente de todas sus dependencias, pero no sabe cuáles quiere con anticipación (y está utilizando Eclipse).
Terminé usando el enfoque de @ GabrielRamierez , pero emplearé el enfoque de @ PascalThivent en el futuro.
El plugin maven idea para IntelliJ Idea le permite especificar si las fuentes y el documento Java deben resolverse y descargarse
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Para descargar alguna fuente o javadoc específica, debemos incluir los GroupIds. Es un valor separado por comas, como se muestra a continuación.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Tenga en cuenta que los clasificadores no están separados por comas, para descargar el javadoc necesitamos ejecutar el comando anterior una vez más con el clasificador como javadoc
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Para descargar cualquier uso de artefactos.
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Para las fuentes de Groovy esto sería
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Para javadoc de Groovy usarías
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Esto coloca el artefacto dado en su repositorio local de Maven, es decir, generalmente $HOME/.m2/repository
.
dependency:sources
simplemente descargan las dependency:sources
las dependencias del proyecto, no las fuentes de los complementos ni las fuentes de las dependencias definidas dentro de los complementos.
Puede encontrar información en esta pregunta relacionada: Obtenga archivos jar de origen adjuntos a Eclipse para dependencias administradas por Maven
si usa el plugin eclipse maven, use ''mvn eclipse: eclipse -DdownloadSources = true''
Si conoce groupId y aritifactId , puede generar una URL de descarga como esta.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
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!
Si un proyecto crea un tarro de las fuentes del proyecto y lo implementa en un repositorio de Maven, entonces lo encontrará :)
Solo para su información, las fuentes de artefactos generalmente son creadas por el maven-source-plugin . 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 fuente :
(...) El archivo jar generado se nombrará por el valor de
finalName
más "-sources" si se trata de las fuentes principales. De lo contrario, seríafinalName
más "-test-sources" si se trata de las fuentes de prueba.
El texto adicional que se dio para describir un artefacto ("-sources" o "-estest-sources" aquí) se llama un clasificador.
Para declarar una dependencia en un artefacto que usa un clasificador, simplemente agregue el elemento <classifier>
. Por ejemplo:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
Tenga en cuenta que generalmente no hace esto, la mayoría de los IDE proporcionan soporte para descargar fuentes (y / o JavaDoc) desde el artefacto principal sin declarar explícitamente una dependencia de ellos.
Finalmente, también tenga en cuenta que algunos motores de búsqueda de repositorios permiten buscar artefactos utilizando el clasificador (al menos Nexus lo hace con la búsqueda avanzada). Ver esta búsqueda por ejemplo.
También he usado el complemento de eclipse para llevar el proyecto al espacio de trabajo de eclipse. Como he trabajado en un proyecto diferente, he visto que es posible trabajar con eclipse pero sin el plugin Maven-Eclipse. Eso hace que sea más fácil de usar en 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.
Usted puede, si se cargan. Generalmente se llaman "frameworkname-version-source (s)"
si está utilizando eclipse, también puede abrir Preferencias> Maven y seleccionar Descargar fuentes de artefactos, esto dejaría el pom.xml intacto y mantendría sus fuentes o documentos java (si se seleccionaron) solo para desarrollo en la ubicación de su máquina ~ /.
En eclipse
- Haga clic derecho en el
pom.xml
- Seleccione
Run As
->Maven generate-sources
generará la fuente por defecto en la carpeta .m2
Requisito previo:
Maven debe configurarse con Eclipse.