Java “解决方案”;无法将MANIFEST.MF添加到ZIP";梯度误差
我正在使用gradle构建一个JAVA项目。这个java项目包含2个jar任务。另一个jar任务创建Manifest.MF。第二个Jar任务没有。当它试图构建时,它给出了一个错误“无法将MANIFEST.MF添加到ZIP”。我没有自定义manifest.mf文件。这是gradle创建的默认文件 我已经研究过overflow和gradle操作manifest.mf的方法,但还没有这样的运气 以下是给出错误的任务代码(所有其他任务都可以正常工作):Java “解决方案”;无法将MANIFEST.MF添加到ZIP";梯度误差,java,gradle,build,manifest.mf,Java,Gradle,Build,Manifest.mf,我正在使用gradle构建一个JAVA项目。这个java项目包含2个jar任务。另一个jar任务创建Manifest.MF。第二个Jar任务没有。当它试图构建时,它给出了一个错误“无法将MANIFEST.MF添加到ZIP”。我没有自定义manifest.mf文件。这是gradle创建的默认文件 我已经研究过overflow和gradle操作manifest.mf的方法,但还没有这样的运气 以下是给出错误的任务代码(所有其他任务都可以正常工作): 我希望该任务能够编译并在jar中创建manifes
我希望该任务能够编译并在jar中创建manifest.mf文件。我找到了答案。行:
rootSpec.filter(ReplaceTokens,tokens:[VERSION:versNumber,BUILD:buildNumber,HTTPSECURE:HTTPSECURE])
是问题所在。不太清楚为什么,我想出来了。行:rootSpec.filter(ReplaceTokens,tokens:[VERSION:versNumber,BUILD:buildNumber,HTTPSECURE:HTTPSECURE])
是问题所在。但我不太清楚为什么。
task ejbJar(type: Jar) {
description = "This task is to build the ytd EJB.JAR file for zzz."
rootSpec.exclude("**/*.sig","**/config/*.xml")
rootSpec.filter(ReplaceTokens, tokens: [VERSION: versNumber, BUILD: buildNumber, HTTPSECURE: httpsecure])
archiveFileName = "${ytd}_ejb.jar"
//includes the class files into the JAR
from(sourceSets.main.output) {
include "**"
}
//replace tokens in xml files
//includes the xml files inside of the config folder in the jar files
from('src/main/resources/com/foo/config') {
include '*.xml'
into 'com/foo/config'
filter(ReplaceTokens, tokens: [VERSION: versNumber, BUILD: buildNumber, HTTPSECURE: httpsecure])
}
from('src/main/webapp/META-INF') {
into "/META-INF"
include("*ejb*.xml")
}
from('src/main/webapp/WEB-INF/classes') {
into '/'
include('**/*')
exclude('zzz1.properties', 'zzz2.properties')
}
}