如何使用Maven下载jar的源代码?

时间:2012-07-06 11:28:25

标签: java maven jar

在我的项目中,我使用的是通过Maven提供的JAR文件。但Maven给我的只是这个罐子 - 没有javadocs,也没有来源。按“下载源”无效:Eclipse仍然找不到jar的来源。

这取决于什么?存储库应该自动提供源吗?

可能我需要在POM中写一些东西来指示Maven下载源代码?

我目前的pom如下:

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

为什么Maven没有说任何评论来源下载失败?

7 个答案:

答案 0 :(得分:80)

执行mvn dependency:sources将强制maven下载项目中所有jar的所有源,如果源可用(在托管工件的存储库中上载)。如果要下载javadoc,命令为mvn dependency:resolve -Dclassifier=javadoc

还可以在settings.xml文件中创建配置文件,并包含以下属性:

<properties>
  <downloadSources>true</downloadSources>
  <downloadJavadocs>true</downloadJavadocs>
</properties>

答案 1 :(得分:38)

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

如果它没有来源,它应该说像

[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

答案 2 :(得分:8)

最好不要依赖Eclipse插件,因为它已被弃用。使用downloadSourcesdownloadJavadocs属性对我不起作用。关于使用依赖项插件字的上面发布的答案。但是,您可能希望自动下载源和javadoc。此外,您可能希望始终创建一个源jar和一个javadoc jar。把它放在项目的pom中。如果您使用模块,请放入您的父pom。

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

答案 3 :(得分:4)

源/ javadoc jar可能尚未提供且不在存储库中 - 没有任何内容需要源/ javadoc jar存在。

答案 4 :(得分:3)

延伸@hovanessyan回答。

在Maven的settings.xml中启用downloadSources和downloadJavadocs的基本配置文件将如下所示。 例如个人资料ID是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>

答案 5 :(得分:2)

您还可以使用以下网址下载target/dependencies下的来源

mvn -Dclassifier=sources dependency:copy-dependencies

答案 6 :(得分:1)

在eclipse中,严格点击你的项目,然后再点击Maven>Download Javadoc in_array(param_1, param_2, param_3);