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