gradle - 如何构建一个带有lib目录的罐子以及其中的其他罐子? [英] gradle - how do I build a jar with a lib dir with other jars in it?

查看:127
本文介绍了gradle - 如何构建一个带有lib目录的罐子以及其中的其他罐子?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Gradle中 - 我如何在lib
目录(特别是lib / enttoolkit.jar和lib / mail.jar)的构建输出jar中嵌入jar?

解决方案

逐字提升: http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar



Gradle 0.9:

  jar {
from configurations.compile.collect {it.isDirectory()? it:zipTree(it)}
}

Gradle 0.8:

  jar.doFirst {
for(configuration.compile中的文件){
jar.merge(file)
}
}

上面的代码片段只包含该项目的编译依赖项,运行时依赖关系。如果您还想合并这些文件,请将configuration.compile替换为configurations.runtime。



编辑:只选择需要的jar



创建一个新的配置,releaseJars也许

 配置{
releaseJars
}

将您需要的罐子添加到配置中

 依赖关系{
releaseJars组:'javax.mail',名称:'mail',版本:'1.4'
// etc

$ / code>

然后在上面列出的jar任务中使用该配置。


In gradle - how can I embed jars inside my build output jar in the lib directory (specifially the lib/enttoolkit.jar and lib/mail.jar)?

解决方案

Lifted verbatim from: http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar

Gradle 0.9:

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

Gradle 0.8:

jar.doFirst {
    for(file in configurations.compile) {
        jar.merge(file)
    }
}

The above snippets will only include the compile dependencies for that project, not any transitive runtime dependencies. If you also want to merge those, replace configurations.compile with configurations.runtime.

EDIT: only choosing jars you need

Make a new configuration, releaseJars maybe

configurations {
    releaseJars
}

Add the jars you want to that configuration

dependencies {
    releaseJars group: 'javax.mail', name: 'mail', version: '1.4'
    //etc
}

then use that configuration in the jar task outlined above.

这篇关于gradle - 如何构建一个带有lib目录的罐子以及其中的其他罐子?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆