Maven –始终下载源代码和javadocs


244

有没有一种方法可以将Maven配置为始终下载源代码和javadocs?-DdownloadSources=true -DdownloadJavadocs=true每次指定(这通常与运行mvn编译一起进行两次,因为我第一次忘记了)变得很乏味。


这是用于eclipse插件吗?无论如何,您都不必经常运行...
sjr

1
不,它用于命令行程序。我不必经常运行它,但是如果我永远不要运行它,那将是很好的!
schmmd 2011年

1
什么是命令行?这是你什么时候做mvn eclipse:eclipse对的?
sjr

14
@sjr,是的,为了下载源代码和javadocs,可以执行mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
Yuriy Nakonechnyy,2013年

我认为这个问题仍然没有得到回答。接受的答案仅与Eclipse插件有关。@AlexisGamarra的答案是最接近的答案,但不能解决解决方案的“持久性”-它不会将Maven设置为始终在运行mvn install始终执行此操作。
Honza Zidek

Answers:


265

打开您的settings.xml文件~/.m2/settings.xml (如果不存在则创建它)。添加具有添加的属性的部分。然后,确保activeProfiles包含新的配置文件。

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

6
我正在Maven 2.2.1和3.0.2中尝试这些配置文件属性,但它们不起作用。目标存储库是Archiva。还有其他建议可以尝试吗?我也尝试过使用dependency:sources目标。谢谢
jmend 2012年

18
此外,在Eclipse中,您可以转到“偏好设置”->“ Maven”(无子类别)。在那里,您可以检查“下载工件源代码/ JavaDocs”。但是,有时候Eclipse不想手动创建该文件(发生在Luna中)。在这种情况下,去那里,将这个答案粘贴在设置标签中,并告诉Eclipse重新加载它,它应该可以工作。
AndreiBârsan2014年

9
这对我有用:在Eclipse中转到Preferences-> Maven(无子类别)。检查-“下载工件源代码”-“下载工件JavaDocs”-“在启动时更新Maven项目”(只是因为我找不到手动方式),然后重新启动Eclipse。完成
德克2014年

4
这只会影响Maven Eclipse插件。
姚敬国

9
应该是公认的答案!正如@JingguoYao所说,它仅影响Maven Eclipse插件。最初的问题不限于Eclipse,而是Maven本身。
Honza Zidek '17

195

在我的情况下,“ settings.xml”解决方案不起作用,因此我使用以下命令来下载所有源:

mvn dependency:sources

您还可以将其与其他maven命令一起使用,例如:

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

要下载所有文档,请使用以下命令:

mvn dependency:resolve -Dclassifier=javadoc

1
我认为这个问题仍然没有得到回答。接受的答案仅与Eclipse插件有关。您的答案是最接近的,但不能解决解决方案的“持久性”-它不会将Maven设置为始终在运行mvn install始终执行此操作。
Honza Zidek

52

只需合并并准备好单个命令即可处理源代码和文档下载...

mvn dependency:sources dependency:resolve -Dclassifier=javadoc

42

为来自Google的人解答

Eclipse中,您可以自动下载javadoc源代码

为此,请右键单击该项目并使用

  • Maven->下载JavaDoc
  • Maven->下载源

3
在IDEA中,您可以右键单击Module,然后在Maven菜单下,有一个选项来下载源代码和/或文档
forresthopkinsa

@Betlista阅读帖子的第一行。很多人从Google到这里寻找其他东西。但是最终还是进入了这里,甚至使用了不同的关键字
Ghandhikus

14

我正在使用Maven 3.3.3,无法获取默认配置文件以在用户或全局settings.xml文件中工作。

解决方法是,您也可以在pom.xml文件中添加其他构建插件。

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


4

正如@ xecaps12所说,最简单/有效的方法是更改​​您的Maven设置文件(〜/ .m2 / settings.xml),但如果它是默认设置,您也可以像这样设置

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

这实际上不起作用,您只是声明未使用的全局属性。我相信神话液从传来maven-eclipse-pluginmaven.apache.org/plugins/maven-eclipse-plugin/examples/...
inanutshellus

不,这只是“已解决”答案的简化;)
Kraiss

1
“已解决”版本也不起作用。(我也在那里发表了相同的评论,但在与您协商时已将其暂时删除。)那么-您是在说您的答案(以及因此得到解决的答案)实际上对您有用吗?我的意思是,有159个人上传了错误或过时的答案,因此很显然它对某人有效。如果按您说的那样有效,那么我就做错了,解决该问题的评论中的几个人也都做错了,我很乐意学习并得到解决。
inanutshellus

我想当您实际使用eclise开发时,那些全局变量由eclipse插件检查。源获取是通过Eclipse完成的,而不是通过命令行上的maven完成的。
Jonatan Cloutier

1

我认为每个插件都可以完成。请参阅Maven书中的本章

您可能可以配置依赖项插件来下载源(即使我自己还没有尝试过它:-)。


1

在Netbeans中,您可以指示Maven在每个打开的项目上检查javadoc:

Tools| Options| Java图标| Maven标签 Dependencies类别| Check Javadoc下拉菜单设置为Every Project Open

关闭并重新打开Netbeans,您将在状态栏中看到Maven下载javadocs。



0

只需修改文件mvn(或mvn.cmd在Windows中),然后添加所需的任何命令行开关(如其他答案所述)。如果您不想修改安装文件(我建议这样做),请创建一个mymvn(或mymvn.cmd)包装器,该包装器mvn使用参数调用常规。


0

我必须使用KeyStore来下载Jars。如果您有任何与证书相关的问题,可以使用以下方法:

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

如果您想知道如何创建KeyStore,这是一个很好的链接:在代理后面使用Maven和SSL时遇到 问题


0

对于依赖级别(pom.xml)上的源,您可以添加:

<classifier>sources</classifier>

0

为了跟踪kevinarpe的答案,此操作同时提供了源代码和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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.