2012-07-06 51 views
38

En mi proyecto estoy usando un archivo JAR proporcionado a través de Maven. Pero lo que Maven me da es solo este frasco: sin javadocs y sin fuentes. Presionar "Descargar fuentes" no tiene ningún efecto: Eclipse aún no encuentra las fuentes del contenedor.¿Cómo descargar fuentes para un jar con Maven?

¿De qué depende esto? ¿Debería el repositorio proporcionar fuentes automáticamente?

¿Será necesario escribir algo en POM para indicarle a Maven que descargue las fuentes?

Mi pom corriente sigue:

<repositories> 
    <repository> 
     <id>xuggle repo</id> 
     <url>http://xuggle.googlecode.com/svn/trunk/repo/share/java/</url> 
    </repository> 
</repositories> 

<dependencies> 

    <dependency> 
     <groupId>xuggle</groupId> 
     <artifactId>xuggle-xuggler</artifactId> 
     <version>5.3</version> 
     <type>rar</type> 
    </dependency> 

</dependencies> 

Por qué Maven no dice ningún comentario al respecto de las fuentes de descarga fallar?

Respuesta

63

Al ejecutar mvn dependency:sources forzará a maven a descargar todas las fuentes de todos los archivos jar del proyecto, si las fuentes están disponibles (se cargan en el repositorio donde está alojado el artefacto). Si quiere descargar javadoc el comando es mvn dependency:resolve -Dclassifier=javadoc

También es posible crear un perfil en su settings.xml e incluyen las siguientes propiedades:

<properties> 
    <downloadSources>true</downloadSources> 
    <downloadJavadocs>true</downloadJavadocs> 
</properties> 
+0

Pero si no hay fuentes en el repositorio Maven simplemente no hacer nada en silencio, ¿verdad? Sin errores, sin advertencias? –

+0

sí, supongo que sí, al menos si no se está ejecutando en algún modo muy detallado/de depuración. Tal vez sea posible ejecutarlo en modo depuración/detallado y grep para los mensajes específicos. – hovanessyan

+0

Agregué una respuesta para extender sobre la adición de estas propiedades a la configuración de maven.xml – RaamEE

3

Puede que los archivos jar de fuente/javadoc no se hayan proporcionado y no estén en el repositorio; no hay nada que requiera la presencia de un jar fuente/javadoc.

27
mvn dependency:sources 
mvn dependency:resolve -Dclassifier=javadoc 

si no tiene fuentes que debería decir algo como

[INFO] The following files have NOT been resolved: 
[INFO] com.oracle:ojdbc6:java-source:sources:12.1.0.1 
[INFO] javax:javaee-api:java-source:sources:6.0 
3

que se extiende en @hovanessyan answer.

Un perfil básico para habilitar downloadSources y descargarJavadocs, en settings.xml de Maven se verá así. p. Identificación del perfil es downloadSources

<!-- add the profile under profiles section --> 

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

<!-- activate the profile under activeProfiles section --> 

    <activeProfiles> 
    <activeProfile>downloadSources</activeProfile> 
    </activeProfiles> 
0

en Eclipse, rigth clic en su proyecto, entonces Maven>Download Sources nuevo Maven>Download Javadoc

6

lo mejor es no confiar en el plug-in de Eclipse, ya que está en desuso. Usar las propiedades downloadSources y downloadJavadocs no funcionó para mí. La respuesta publicada anteriormente con respecto al uso de la palabra del complemento de dependencias. Sin embargo, es posible que desee descargar fuentes y javadocs automáticamente. Además, es posible que desee crear siempre un jar de origen y un jar de javadoc. Pon esto en el pomo de tu proyecto. Si usa módulos, ingrese su padre principal.

<build> 
    <plugins> 
     <!-- download sources and javadoc --> 
     <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> 
        <id>download-sources</id> 
        <goals> 
         <goal>sources</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>download-javadoc</id> 
        <configuration> 
         <classifier>javadoc</classifier> 
        </configuration> 
        <goals> 
         <goal>resolve</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <!-- Always create javadoc jar. --> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.10.4</version> 
      <executions> 
       <execution> 
        <id>attach-javadoc</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <!-- Always create source jar. --> 
     <plugin> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <goals> 
         <goal>jar</goal> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
1

También puede descargar fuentes bajo target/dependencies usando:

mvn -Dclassifier=sources dependency:copy-dependencies 
Cuestiones relacionadas