如何告诉gradle下载所有源JAR

如何告诉gradle下载所有源JAR,gradle,Gradle,理想情况下,我们希望添加一个任务,用于为项目的第一级和可传递依赖项下载所有源jar。有办法吗 如果没有,是否有命令行选项可以提供,比如maven必须将所有源代码下载到我们的机器上 这似乎应该是目前的默认设置,至少对于一级依赖项来说是这样,因为它在eclipse中提供了javadoc,这在完成代码时非常好。如果您使用eclipse并希望在那里导航依赖项的源代码,那么eclipse插件会为您完成这项工作 通过向build.gradle文件添加apply plugin:“eclipse”来安装ecli

理想情况下,我们希望添加一个任务,用于为项目的第一级和可传递依赖项下载所有源jar。有办法吗

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


这似乎应该是目前的默认设置,至少对于一级依赖项来说是这样,因为它在eclipse中提供了javadoc,这在完成代码时非常好。

如果您使用eclipse并希望在那里导航依赖项的源代码,那么eclipse插件会为您完成这项工作

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

要将项目导入Eclipse,请选择
File>import…>将现有项目放入工作区
,然后选择您的项目


(我不确定Idea插件对Idea用户是否也有同样的作用,但它可能有作用)。

eclipse任务可以配置下载源。下面是该配置的示例

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

eclipse {
    classpath {
       downloadSources=true
    }
}
快跑

gradle cleanEclipse eclipse

下载资料。

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

  • 右键单击项目,然后选择“生成路径”-->“配置生成路径”
  • 选择“订单和导出”
  • 选择“Web应用程序库”,点击“底部”按钮,“Web应用程序库”位于底部 要将这一点输入Gradle Eclipse插件(因此您不需要每次都手动执行):


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

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


    问题的更详细描述如下。

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

    用于:

    为了

    要运行这些插件,请执行以下操作:

    gradle cleanEclipse eclipse
    gradle cleanIdea idea
    

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


    我需要补充的一点是,Gradle/Builsdhip插件的版本在很大程度上取决于启动Eclipse所使用的Java版本。它们必须相互兼容。我不得不将Eclipse(当前版本)从Java11切换回Java8,以修复构建(3.0.1)错误。由于Gradle中的API更改破坏了我们的构建,我们已经在Gradle 4.2.1上停留了一段时间。因此,要迁移到Java11,我们必须迁移到Gradle、Buildship和Eclipse的新版本。啊!哦,是的,这也解决了这个帖子中提到的问题。源代码现在又可用了。

    :)只是想提醒您注意有关使用签名的常见问题解答;你在StackOverflow上的问题和答案已经用你的用户卡“签名”,因此没有必要在帖子中签名。好吧,那太糟糕了……签名是出现在你帖子中的东西,而不是你必须点击链接才能到达的东西……由于链接的障碍,签名的读取速度大大降低(事实上,它可能下降了90%左右:(这是非常不幸的,因为stackoverflow可以帮助很多人获得真正的签名)。如果您使用的是Gradle包装器,请查看此答案:根据可能的情况,这是默认行为,但是我的
    Gradle cleanEclipse eclipse
    在我将指定的配置添加到
    build.Gradle
    之后才下载源jar。谢谢@skipy!是的,根据我的经验,Gradle下载了source.jar并链接了源jar在构建路径设置中,这样你就可以调试源代码了。有一件事需要注意:在我清理了gradle缓存之后,我必须
    gradle cleanEclipse eclipse
    ,然后关闭并重新打开eclipse项目,让eclipse再次看到源代码。Android Studio呢?在做了一些小的研究之后,我认为这是不可能的……有时你不会请查看Eclipse WTP中的源代码,尽管它们是由gradle下载的。在这种情况下,您需要手动将Web应用程序库推到构建路径的底部或使用感谢。在我的情况下,gradle确实下载源代码,但Eclipse不链接源代码和项目…:-(就是这样。解决方案是删除mavenLocal()从存储库或将其放在列表的底部对我有用!太好了,经过两天的搜索,这对我有用。
    apply plugin: 'java'
    apply plugin: 'idea'
    
    idea {
        module {
            downloadJavadoc = true
            downloadSources = true
        }
    }
    
    gradle cleanEclipse eclipse
    gradle cleanIdea idea