Java 如何使gradle jar附加到清单而不是覆盖?
我希望将一个gradle'jar'任务附加到项目中现有的清单文件中,而不是动态创建一个清单文件。可能吗?背后的想法是在文件中添加静态清单条目(供应商、名称等),在build.gradle中添加动态条目(版本、版本号等)。我可以将它们全部放在build.gradle中,但如果想在应用程序功能中使用/公开它们,则它们仅在执行JAR时可用,而不是在通过IDE或Java 如何使gradle jar附加到清单而不是覆盖?,java,gradle,Java,Gradle,我希望将一个gradle'jar'任务附加到项目中现有的清单文件中,而不是动态创建一个清单文件。可能吗?背后的想法是在文件中添加静态清单条目(供应商、名称等),在build.gradle中添加动态条目(版本、版本号等)。我可以将它们全部放在build.gradle中,但如果想在应用程序功能中使用/公开它们,则它们仅在执行JAR时可用,而不是在通过IDE或gradle run运行应用程序时可用 gradle脚本似乎没有公开该功能。gradle脚本本质上是groovy,因此您可以读取包含静态条目的文
gradle run
运行应用程序时可用
gradle脚本似乎没有公开该功能。gradle脚本本质上是groovy,因此您可以读取包含静态条目的文件,然后使用清单上的attributes方法或from方法将其写入清单。读取文件应该是一项单独的任务,清单可以获取该任务的输出
如果静态文件是属性文件,我建议使用ConfigSlurper。我想你可以这样配置Gradle脚本:
task fatJar(type: Jar) {
baseName = project.name + '-all'
manifest = project.manifest {
from jar.manifest // sthing u need to add.
}
}
我希望这对你有帮助