使用 gradle 将清单文件添加到 jar

yoj*_*oru 2 java jar manifest gradle

如何在 jar 文件中添加清单文件?

plugins {
        id 'java'
        id 'application'
}

application {
        mainClassName = 'com.Main'
}

jar {
        from "MANIFEST.MF"
}

sourceCompatibility = 11
Run Code Online (Sandbox Code Playgroud)

当我尝试执行 jar 时,我得到以下信息:

% java -jar tmpApp.jar
没有主清单属性,在 tmpApp.jar

Chr*_*iki 5

以下是在jar构建任务中生成适当清单文件的方法:

jar {
    manifest {
        attributes 'Main-Class': application.mainClassName
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以为清单使用自定义文件:

jar {
    manifest {
        from 'MANIFEST.MF'
    }
}
Run Code Online (Sandbox Code Playgroud)

您甚至可以创建两者的混合:

jar {
    manifest {
        // take the existing file as a basis for the generated manifest:
        from 'MANIFEST.MF'
        // add an attribute to the generated manifest file:
        attributes 'Main-Class': application.mainClassName
    }
}
Run Code Online (Sandbox Code Playgroud)