82

在我的项目中,我使用的是通过 Maven 提供的 JAR 文件。但是 Maven 给我的只是这个 jar - 没有 javadocs 也没有来源。按“Download Sources”没有任何效果: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 没有说任何关于它的源下载失败的评论?

4

7 回答 7

143

2020 年更新:

应该使用Maven依赖插件来dependency:sources 实现目标

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.1.1</version>
    <executions>
      <execution>
        <id>download-sources</id>
        <goals>
          <goal>sources</goal>
        </goals>
        <configuration>
        </configuration>
      </execution>
    </executions>
  </plugin>

这也可以从命令行运行:

mvn dependency:sources -Dsilent=true

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

已弃用:

也可以在 settings.xml 文件中创建配置文件并包含以下属性:
<properties>
  <downloadSources>true</downloadSources>
  <downloadJavadocs>true</downloadJavadocs>
</properties>
于 2012-07-06T11:34:14.603 回答
59
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
于 2014-04-22T22:28:27.390 回答
14

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

<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>
于 2016-08-16T20:21:46.447 回答
6

Maven>Download Sources在 Eclipse 中,再次单击您的项目Maven>Download Javadoc

于 2016-07-17T04:11:02.917 回答
5

您还可以target/dependencies使用以下方式下载源:

mvn -Dclassifier=sources dependency:copy-dependencies
于 2017-03-08T18:30:40.923 回答
4

源/javadoc jar 可能尚未提供并且不在存储库中——没有任何东西需要源/javadoc jar 存在。

于 2012-07-06T11:33:36.377 回答
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>
于 2014-08-10T07:08:35.103 回答