web-dev-qa-db-fra.com

Comment télécharger des sources pour un pot avec Maven?

Dans mon projet, j'utilise un fichier JAR fourni par Maven. Mais ce que me donne Maven, c’est seulement ce pot - pas de javadocs ni de sources. Appuyer sur "Download Sources" n'a aucun effet: Eclipse ne trouve toujours pas les sources du fichier jar.

Qu'est-ce que cela dépend? Le référentiel doit-il fournir des sources automatiquement?

Peut-être ai-je besoin d'écrire quelque chose dans POM pour demander à Maven de télécharger des sources?

Mon pom actuel suit:

<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>

Pourquoi Maven ne dit pas que les commentaires sur le téléchargement de ses sources échouent?

46
Suzan Cioc

L'exécution de mvn dependency:sources obligera maven à télécharger toutes les sources de tous les fichiers JAR du projet, si ces sources sont disponibles (elles sont chargées dans le référentiel où l'artefact est hébergé). Si vous voulez télécharger javadoc, la commande est mvn dependency:resolve -Dclassifier=javadoc

Il est également possible de créer un profil dans votre fichier settings.xml et d'inclure les propriétés suivantes:

<properties>
  <downloadSources>true</downloadSources>
  <downloadJavadocs>true</downloadJavadocs>
</properties>
74
hovanessyan
mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

s'il n'a pas de sources, il devrait indiquer quelque chose comme

[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
35
Kalpesh Soni

Il est préférable de ne pas compter sur le plug-in Eclipse car il est obsolète. L'utilisation des propriétés downloadSources et downloadJavadocs ne fonctionnait pas pour moi. La réponse ci-dessus concernant l’utilisation du plugin de dépendances Word. Cependant, vous souhaiterez peut-être télécharger automatiquement les sources et les javadocs. De plus, vous souhaiterez peut-être toujours créer un pot source et un pot javadoc. Mettez ceci dans le pom de votre projet. Si vous utilisez des modules, mettez votre pom parent.

<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>
7
Douglass Parker

Les fichiers jar source/javadoc n'ont peut-être pas été fournis et ne figurent pas dans le référentiel. Rien ne nécessite la présence d'un fichier jar source/javadoc.

4
kevinpeterson

prolonger @hovanessyan réponse.

Voici un profil de base permettant d'activer downloadSources et downloadJavadocs dans le fichier settings.xml de Maven. par exemple. l'identifiant du profil est 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>
3
RaamEE

Vous pouvez également télécharger les sources sous target/dependencies en utilisant:

mvn -Dclassifier=sources dependency:copy-dependencies
2
Marinos An

Dans Eclipse, faites un clic droit sur votre projet puis Maven>Download Sources à nouveau Maven>Download Javadoc

0
Alireza Fattahi