如何告诉gradle下载所有源jar

时间:2012-04-14 19:50:03

标签: gradle

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

如果没有,是否有供maven提供的命令行选项必须将所有资源下载到我们的机器上?

这些日子似乎应该是默认的,至少对于第一级依赖,因为它在eclipse中提供了javadoc然后在执行代码完成时非常好。

6 个答案:

答案 0 :(得分:38)

可以使用downloadSources配置eclipse任务。以下是该配置的示例

apply plugin: 'java'
apply plugin: 'eclipse'

eclipse {
    classpath {
       downloadSources=true
    }
}

所以运行

gradle cleanEclipse eclipse

让它下载资源。

答案 1 :(得分:25)

如果您使用Eclipse并希望在那里导航依赖项的源代码,那么Eclipse插件会为您执行此操作。

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

要将项目导入Eclipse,请选择File > Import... > Existing Projects into Workspace并选择您的项目。

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

答案 2 :(得分:20)

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

解决方案是从mavenLocal()中删除repositories或将其放在列表底部。或者您可以setup maven下载源代码和javadoc并清理您的maven本地存储库(~/.m2/repository)。

问题的更详细说明是here

答案 3 :(得分:10)

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

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

答案 4 :(得分:6)

Piohen上面的评论应该是它自己的答案(因为这是唯一对我有用的解决方案)

  1. 右键单击您的项目,然后选择" Build Path" - > "配置构建路径&#34 ;;
  2. 选择"订购和导出"
  3. 选择" Web App Libraries",然后点击" Bottom"按钮,然后是" Web App Libraries"将在底部;
  4. 并将其纳入Gradle Eclipse插件(因此您不必每次都手动执行此操作):

    Why is Eclipse not attaching 3rd party libs source files to a WTP-faceted Gradle project?

答案 5 :(得分:0)

这里只有一个问题。这仅在生成新项目时有效。如果您正在处理无法使用Gradle重新生成的成熟项目,则上述建议将不起作用。

我应该添加的一件事是Gradle / Builsdhip插件的版本在很大程度上取决于您用来启动Eclipse的Java版本。它们必须全部兼容。我必须将Eclipse(当前版本)从Java 11切换回Java 8,以修复Buildship(3.0.1)错误。由于Gradle中的API更改破坏了我们的版本,我们已经(并已经)停留在Gradle 4.2.1上一段时间。因此,要迁移到Java 11,我们必须迁移到新版本的Gradle,Buildship和Eclipse。啊!哦,是的,这也解决了该线程中提到的问题。现在,源再次可用。