Groovy Gradle zip打包:从存储库复制Jar文件

Groovy Gradle zip打包:从存储库复制Jar文件,groovy,gradle,Groovy,Gradle,我必须在我的ZIP包中从存储库(比如本地)复制一个jar。我知道我们可以在依赖项中定义编译/运行时。然而,我不能在ZIP中使用它 我可以通过在文件系统中指定路径来复制jar文件。但是,我不知道如何从存储库中执行此操作 下面是我的代码的样子: task createZipFile (type: Zip, dependsOn: [...]) { baseName 'xyz' from(fileTree("src/main"), { include "prjName

我必须在我的ZIP包中从存储库(比如本地)复制一个jar。我知道我们可以在依赖项中定义编译/运行时。然而,我不能在ZIP中使用它

我可以通过在文件系统中指定路径来复制jar文件。但是,我不知道如何从存储库中执行此操作

下面是我的代码的样子:

task createZipFile (type: Zip, dependsOn: [...]) {

    baseName 'xyz'

    from(fileTree("src/main"), {
        include "prjName/css/**"
        include "prjName/images/**"
        include "prjName/javascript/**"
        include "prjName/WEB-INF/**"
        exclude "prjName/WEB-INF/web.xml"
    })

    from file("<Absolute-path-to-jar-file-in-my-filesystem>") //this works
    // how to copy the same jar file from repository ??
}
task createZipFile(类型:Zip,dependsOn:[…]){
基本名称“xyz”
从(文件树(“src/main”){
包括“prjName/css/**”
包括“prjName/images/**”
包括“prjName/javascript/**”
包括“prjName/WEB-INF/**”
排除“prjName/WEB-INF/WEB.xml”
})
从文件(“”//开始,这是有效的
//如何从存储库复制相同的jar文件??
}

假设依赖项位于运行时配置中,即:

runtime 'org.slf4j:slf4j-log4j12:1.6.2'
你可以做:

task createZipFile( type: Zip, dependsOn: [...] ) {
    baseName 'xyz'
    from fileTree("src/main"), {
        include "prjName/css/**"
        include "prjName/images/**"
        include "prjName/javascript/**"
        include "prjName/WEB-INF/**"
        exclude "prjName/WEB-INF/web.xml"
    }

    from configurations.runtime.files { it.name == 'slf4j-log4j12' }
}

要添加为名为
slf4j-log4j12

的依赖项下载的所有jar,要指定没有依赖项的特定jar,请使用“@jar”对其进行限定。例如。 “公地豆:公地豆:1。6@jar"
有关解释如何使用自定义配置引用一组JAR的示例,请参见

,非常感谢。我在找类似的东西。如果我想复制多个JAR怎么办?我添加了“或”条件?@Chris,它将复制
'slf4j-log4j12'
的所有jar依赖项。如果您想添加更多,我可能会从行中添加更多的
,以依次捕获这些依赖项(或者,您可以将其分配给一个方法,该方法获取一个名称列表,并将结果收集到一个文件列表中,因此您可以从depFinder调用类似于
的内容('slf4j-log4j12','something other'))
嗯..我的情况在这里有点不同。我只想要我指定的jar。我不想要它们的依赖项。我只是检查它是否正在复制所有的jardependencies@Chris啊,好的……你能给我一个依赖性的例子吗?@Chris我相信主jar总是返回列表中的第一个(依赖性jar紧随其后),因此您应该能够执行:
configurations.runtime.files{dep->dep.name=='httpclient'}.collect()[0]