java Gradle下载源依赖项
在gradle中,我有以下构建。gradle,这导致许多jar被复制到“sources”文件夹,但只有jersey-media-moxy-2.22.2-sources。jar实际上包含源代码:
defaultTasks 'run'
repositories {
mavenCentral()
}
configurations {
sources {
description = 'sources download'
transitive = true
}
copysource {
extendsFrom sources
}
}
dependencies {
sources group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.22.2', classifier: 'sources'
}
task copySources(type: Copy) {
println 'Copying dependencies to sources directory'
into "sources/"
from configurations.copysource
}
task run (dependsOn: ['copySources']){
println 'Downloading JARs'
}
run << {
println 'Downloads complete. Finished.'
}
如何修改构建以获得所有源代码(包括可传递源/依赖源)?我不想要非源jar。我不明白为什么分类器不能传递应用,所以请澄清我的误解
而且,我知道这不是使用gradle的最佳方式。在迁移构建系统之前,这是一个临时步骤(部分)
# 1 楼答案
我发现的方法是遍历可传递依赖项树,分别下载每个依赖项的源代码。这远非理想,但它确实有效
请注意,在声明依赖项时,不再需要在依赖项上指定分类器
# 2 楼答案
Gradle没有任何与依赖项的“源”配置相关的APIChapter 7. Dependency Management Basics
答案也独立于集成开发环境。如果尚未应用特定的IDE插件,则需要应用该插件
IntelliJ
日食
# 3 楼答案
首先,我们必须提醒它
我们需要在
idea's module section
或eclipse classpath section
中首先添加两个内容或
资源链接:
其次
我们需要从存储库部分删除
mavenLocal()
部分,存储库将被放置在最上面的部分。你已经做到了第三,
有时您在EclipseWTP中看不到源代码,尽管它们是由gradle下载的。在这种情况下,您需要手动将Web应用程序库推送到构建路径的底部。 为了解决这个问题,你需要遵循
要将这一点输入Gradle Eclipse插件(因此您不需要每次都手动执行): Why is Eclipse not attaching 3rd party libs source files to a WTP-faceted Gradle project?
归功于@jasop
更新:
我想给你们更新,现在我可以下载所有javadocs和源jar文件。但我无法将它们复制到源文件夹中。下面给出了我下载javadocs和jar源代码的成功尝试:
build.gradle
文件如下所示:命令提示符中的输出:下载javadocs和源jar文件