如何告诉gradle下载所有的源代码jar

理想情况下,我们想添加一个任务来下载我们项目的一级和传递依赖关系的所有源代码jar。 有没有办法做到这一点?

如果没有,是否有一个命令行选项来提供像maven必须获得所有来源下载到我们的机器?

至less对于第一级别的依赖关系来说,似乎应该只是默认值,因为它给了你eclipse中的javadoc,而在代码完成的时候它是非常好的。

如果您使用Eclipse并且想要浏览您的依赖关系的源代码,那么Eclipse插件会为您做这件事。

通过添加apply plugin: "eclipse"到你的build.gradle文件来安装eclipse插件。 然后运行gradle eclipse来生成Eclipse .project,.classpath和.settings文件。 该插件将自动下载所有可用的源代码,并在.classpath文件中添加引用(请参阅classpathentry元素的sourcepath属性)。

要将项目导入到Eclipse中,请select“ File > Import... > Existing Projects into Workspace并select您的项目。

(我不确定Idea插件对Idea用户是否做同样的事情,但可能会这样做)。

eclipse任务可以使用downloadSources进行configuration。 以下是该configuration的一个例子

 apply plugin: 'java' apply plugin: 'eclipse' eclipse { classpath { downloadSources=true } } 

所以跑吧

 gradle cleanEclipse eclipse 

有它下载来源。

另一个没有在其他答案中提到的catch是在gradle.build文件中使用mavenLocal()存储库的gradle.build 。 如果在本地maven仓库中有下载的jar文件,但是在该仓库中没有下载源代码或javadoc,那么gradle甚至不会尝试为您下载javadoc或源代码。 即使启用了eclipse.classpath.downloadJavadoceclipse.classpath.downloadSources

解决方法是从repositories删除mavenLocal()或将其放置到列表的底部。 或者你可以设置 maven来下载源代码和javadocs并清理你的maven本地仓库( ~/.m2/repository )。

这个问题更详细的描述。

Piohen上面的评论应该是自己的答案(因为这是唯一的解决scheme,为我工作)

  1. 右键点击你的项目,然后select“Build Path” – >“Configure Build Path”。
  2. select“订单和导出”
  3. select“Web App Libraries”,然后单击“Bottom”button,然后“Web App Libraries”将在底部;

并且把它放到Gradle Eclipse插件中(所以你不需要每次都手动完成):

为什么Eclipse没有将第三方库源文件附加到WTP分面的Gradle项目?

以下是如何使用IDE的插件在Gradle中添加所需的configuration:

对于Eclipse :

 apply plugin: 'java' apply plugin: 'eclipse' eclipse { classpath { downloadJavadoc = true downloadSources = true } } 

对于IntelliJ

 apply plugin: 'java' apply plugin: 'idea' idea { module { downloadJavadoc = true downloadSources = true } } 

运行这些插件:

 gradle cleanEclipse eclipse gradle cleanIdea idea