我有以下依赖项,我想创建一个主jar文件,其中仅包含来自gradle依赖项的5个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'
}
Peter Niederwieser,我使用了以下脚本,但我缺少一些东西并且它不起作用,以下行抛出异常"来自reuterslibs.reuters.collect { zipTree(it) }" .我正在绑定创建单个主jar文件,其中包括ext.reuterslibs中指定的jar文件中的所有类
- 出了什么问题:评估根项目"工作台"时出现问题。无法将提供的表示法转换为文件或 URI: 文件集合。支持以下类型/格式:
- 字符串或字符序列路径,例如"src/main/java"或"/usr/include"
- 字符串或字符序列 URI,例如"file:/usr/include"
- 文件实例。
- URI 或 URL 实例。
分机路透社 = [路透社 : [files ("jfl/reuters/ansi.jar" ,"jfl/reuters/jDacsPrincipal.jar","jfl/reuters/jsfc_p2ps.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)}}
}
定义并使用 apply: "$rootDir/dependencies.gradle" 应用于 build.gradle,所以现在我不想将 jidelib 定义为配置,我想直接迭代 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
}