首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从gradle依赖项(jar文件)的子集创建主jar文件

如何从gradle依赖项(jar文件)的子集创建主jar文件
EN

Stack Overflow用户
提问于 2014-12-09 04:30:29
回答 2查看 325关注 0票数 0

我有以下依赖项,并且我想创建一个只包含5个来自gradle依赖项的jar文件的主jar文件(3个来自根项目依赖项的jar文件和2个来自子项目依赖项的jar文件)(我希望只包括以下文件'spring-webmvc','spring-test‘和'parameters’以及在我的master.jar文件的子项目依赖项中定义的另外两个jar文件)

代码语言:javascript
复制
dependencies {
    compile project(':java_farm_core')

    compile group: 'org.springframework', name: 'spring-webmvc', version: "$springVersion"
    testCompile group: 'org.springframework', name: 'spring-test', version: "$springVersion"
    runtime group: 'com.fir.param', name: 'parameters', version: '1.0-nep'
    compile group: 'org.springframework', name: 'spring-beans', version: "$springVersion"
    compile 'commons-codec:commons-codec:1.9'
    compile group: 'com.fir.jide', name: 'jide-common', version: "$jideVersion"
    compile group: 'com.fir.jide', name: 'jide-grids', version: "$jideVersion"
    compile group: 'com.fir.jide', name: 'jide-charts', version: "$jideVersion"

    testCompile group: 'org.springframework', name: 'spring-oxm', version: "$springVersion"
    testCompile group: 'org.codehaus.castor', name: 'castor-xml', version: "1.3.1"
    testCompile 'org.easymock:easymock:3.1'

    runtime group: 'com.fir.param', name: 'parameters', version: '1.0-nep'


}
EN

回答 2

Stack Overflow用户

发布于 2014-12-10 04:08:09

Peter Niederwieser,我使用了下面的脚本,但是我遗漏了一些东西,它不能工作,下面的代码是抛出异常"from reuterslibs.reuters.collect { zipTree(it) }“。我打算创建一个主jar文件,其中包含ext.reuterslibs中指定的jar文件中的所有类

  • 出错之处:评估根项目'workbench‘时出现问题。无法将提供的表示法转换为File或URI: file集合。支持以下类型/格式:
    • 字符串或CharSequence路径,例如‘src/ CharSequence /java’或'/usr/include'
    • A字符串或URI,例如'file:/usr/include'
    • A文件实例。
    • URI或CharSequence java

代码语言:javascript
复制
task reutersJar( type: Jar ) {
    baseName = 'Reuters'

    from reuterslibs.reuters.collect { zipTree(it) }
    //from reuterslibs.reuters.collect { from zipTree(it) }
    //from files {reuterslibs.reuters.collect {zipTree(it)}}
}
票数 0
EN

Stack Overflow用户

发布于 2014-12-11 23:14:22

这是一个可行的解决方案,现在我唯一关心的是,我想使用在dependencies.gradle中定义的 ext.jidelibs 中指定的所有文件创建一个jar文件,并使用jidelib apply from:"$rootDir/dependencies.gradle",将其应用于build.gradle。因此,现在我不想将jidelib定义为configuration,而是直接迭代ext.jidelibs中定义的文件,并希望创建包含ext.jidelibs中定义的jar文件的所有内容的主jar文件。

代码语言:javascript
复制
ext.jidelibs = [
    jide: [
        files ("$jfl/jide/batik-awt-util.jar",
        "$jfl/jide/commons-collections-3.1.jar",
        "$jfl/jide/commons-logging.jar",
        "$jfl/jide/jide-charts.jar",
        "$jfl/jide/jide-action.jar"
                       )
    ]]


// task to generate signedJide.jar
task jideJar( type: Jar ) {
    duplicatesStrategy = 'exclude'
    baseName = 'Jide'
    from configurations.jidelib.collect {
        it.isDirectory() ? it : zipTree(it).matching {
           exclude "META-INF/*LICENSE*"
           // exclude "META-INF/*NOTICE*"
            //exclude "com/jidesoft/document/document.properties"
           } }
}


configurations {
    jidelib
}


dependencies {  
    jidelib jidelibs.jide
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27366336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档