我有以下依赖项,并且我想创建一个只包含5个来自gradle依赖项的jar文件的主jar文件(3个来自根项目依赖项的jar文件和2个来自子项目依赖项的jar文件)(我希望只包括以下文件'spring-webmvc','spring-test‘和'parameters’以及在我的master.jar文件的子项目依赖项中定义的另外两个jar文件)
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'
}发布于 2014-12-10 04:08:09
Peter Niederwieser,我使用了下面的脚本,但是我遗漏了一些东西,它不能工作,下面的代码是抛出异常"from reuterslibs.reuters.collect { zipTree(it) }“。我打算创建一个主jar文件,其中包含ext.reuterslibs中指定的jar文件中的所有类
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)}}
}发布于 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文件。
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
}https://stackoverflow.com/questions/27366336
复制相似问题