Maven: siempre descarga fuentes y javadocs


244

¿Hay alguna manera de configurar maven para que siempre descargue fuentes y javadocs? Especificar -DdownloadSources=true -DdownloadJavadocs=truecada vez (que generalmente va junto con ejecutar mvn compile dos veces porque olvidé la primera vez) se vuelve bastante tedioso.


¿Es esto para el complemento eclipse? Usted no debería tener que correr que muy a menudo de todos modos ...
SJR

1
No, es para el programa de línea de comando. No tengo que ejecutarlo muy a menudo, ¡pero sería genial si tuviera que ejecutarlo nunca!
schmmd

1
¿Cuál es la línea de comando? Esto es cuando haces lo mvn eclipse:eclipsecorrecto?
sjr

14
@sjr, sí, para descargar fuentes y javadocs que uno puede ejecutarmvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy

Creo que esta pregunta aún no está respondida. La respuesta aceptada está relacionada solo con el complemento Eclipse. La respuesta de @ AlexisGamarra es la más cercana, pero no resuelve la "persistencia" de la solución: no configura que Maven lo haga siempre que ejecute mvn install .
Honza Zidek

Respuestas:


265

Abra su archivo settings.xml ~/.m2/settings.xml (créelo si no existe). Agregue una sección con las propiedades agregadas. Luego asegúrese de que activeProfiles incluya el nuevo perfil.

<settings>

   <!-- ... other settings here ... -->

    <profiles>
        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>
</settings>

66
Estoy probando estas propiedades de perfil en Maven 2.2.1 y 3.0.2 y no funcionan. El repositorio de destino es Archiva. ¿Alguna sugerencia sobre qué más se puede probar? También he intentado usar dependencia: objetivo de fuentes. Gracias
jmend

18
Además, en Eclipse puede ir a Preferencias -> Maven (Sin subcategoría). Allí, puede marcar "Descargar fuentes de artefactos / JavaDocs". Sin embargo, a veces Eclipse no quiere crear ese archivo manualmente (me pasó a mí en Luna). En ese caso, vaya allí, pegue esta respuesta envuelta en etiquetas de configuración y dígale a Eclipse que vuelva a cargarla, y debería funcionar.
Andrei Bârsan

99
Esto funcionó para mí: en Eclipse vaya a Preferencias -> Maven (Sin subcategoría). Compruebe - "Descargar fuente de artefactos" - "Descargar artefactos JavaDocs" - "Actualizar proyectos Maven al inicio" (solo porque no puedo encontrar la forma manual) Luego reinicie Eclipse. Hecho
Dirk

44
Esto solo afecta el complemento Maven Eclipse.
Jingguo Yao

99
¡Esta no debería ser la respuesta aceptada! Como @JingguoYao declaró, solo afecta el complemento Maven Eclipse. La pregunta original no estaba vinculada a Eclipse, sino más bien al propio Maven.
Honza Zidek

195

En mi caso, la solución "settings.xml" no funcionó, así que utilizo este comando para descargar todas las fuentes:

mvn dependency:sources

También puede usarlo con otros comandos maven, por ejemplo:

mvn clean install dependency:sources -Dmaven.test.skip=true

Para descargar toda la documentación, use el siguiente comando:

mvn dependency:resolve -Dclassifier=javadoc

1
Creo que esta pregunta aún no está respondida. La respuesta aceptada está relacionada solo con el complemento Eclipse. Su respuesta es la más cercana, pero no resuelve la "persistencia" de la solución: no configura que Maven lo haga siempre que ejecute mvn install .
Honza Zidek

52

Simplemente consolidando y preparando el comando único para abordar la fuente y la descarga de documentos ...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

Respuesta para personas de Google

En Eclipse puede descargar automáticamente javadoc y fuentes .

Para hacer eso, haga clic derecho en el proyecto y use

  • Maven -> Descargar JavaDoc
  • Maven -> Descargar fuentes

3
Y en IDEA puede hacer clic con el botón derecho en el Módulo, y debajo del menú Maven, hay una opción para descargar fuentes y / o documentación
forresthopkinsa

@Betlista leyó la primera línea de la publicación. Mucha gente va de google a aquí buscando algo más. Pero termine entrando aquí, incluso con diferentes palabras clave
Ghandhikus

14

Estoy usando Maven 3.3.3 y no puedo obtener el perfil predeterminado para trabajar en un usuario o settings.xmlarchivo global .

Como solución alternativa, también puede agregar un complemento de compilación adicional a su pom.xmlarchivo.

<properties>
    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
</properties>
<build>
    <plugins>
        <!-- Download Java source JARs. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>${maven-dependency-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>sources</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

7

En NetBeans : abra su explorador de proyectos-> Dependencias -> [ file.jar ] clic derecho-> Descargar Javadoc


4

Como dijo @ xecaps12, el enfoque más simple / eficiente es cambiar su archivo de configuración de Maven (~ / .m2 / settings.xml) pero si es una configuración predeterminada para usted, también puede configurarlo así

<profile>
  <id>downloadSources</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <downloadSources>true</downloadSources>
      <downloadJavadocs>true</downloadJavadocs>
  </properties>
</profile>

En realidad, esto no funciona, solo estás declarando propiedades globales no utilizadas. Creo que la solución mítica vino de maven-eclipse-plugin: maven.apache.org/plugins/maven-eclipse-plugin/examples/…
inanutshellus

No, es solo una simplificación de la respuesta "resuelta";)
Kraiss

1
La versión "resuelta" tampoco funciona. (También hice el mismo comentario allí, pero lo eliminé temporalmente mientras consultaba con usted). Entonces, ¿está diciendo que su respuesta (y, por lo tanto, la respuesta resuelta) realmente funciona para usted? Quiero decir, 159 personas subieron esa respuesta incorrecta u obsoleta, por lo que claramente funciona para alguien. Si funciona como tú dices, entonces estoy haciendo algo mal, al igual que las varias personas en la respuesta resuelta en sus comentarios y me encantaría aprender eso y hacer que funcione.
inanutshellus

Supongo que esas variables globales se verifican con el complemento eclipse cuando realmente está desarrollando con eclise. la búsqueda de la fuente se realiza por eclipse y no por maven en la línea de comando.
Jonatan Cloutier

1

Creo que se puede hacer por complemento. Vea este capítulo del libro de Maven.

Es posible que pueda configurar el complemento de dependencia para descargar fuentes (aunque no lo he probado yo mismo :-).


1

En Netbeans, puede indicarle a Maven que compruebe javadoc en cada proyecto abierto:

ToolsEl | OptionsEl | Javaicono | Mavenpestaña | Dependenciescategoría | Check Javadocdesplegable establecido enEvery Project Open .

Cierre y vuelva a abrir Netbeans y verá que Maven descarga javadocs en la barra de estado.



0

Simplemente modifique el archivo mvn(o mvn.cmdsi está en Windows) y agregue cualquier cambio de línea de comando que necesite (como se menciona en otras respuestas). Si no desea modificar los archivos de instalación (lo cual recomendaría), cree un mymvn(o mymvn.cmd) contenedor que invoque lo normal mvncon los parámetros.


0

Tuve que usar KeyStore para descargar los tarros. Si tiene problemas relacionados con el Certificado, puede usar este enfoque:

mvn clean install dependency:sources -Dmaven.test.skip=true -Djavax.net.ssl.trustStore="Path_To_Your_KeyStore"

Si desea saber cómo crear KeyStores, este es un enlace muy bueno: problemas al usar Maven y SSL detrás del proxy


0

Para las fuentes en el nivel de dependencia (pom.xml) puede agregar:

<classifier>sources</classifier>

0

Para seguir la respuesta de kevinarpe, esto hace tanto las fuentes como los Javadocs:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>sources</goal>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <classifier>javadoc</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.