Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使gradle jar附加到清单而不是覆盖?_Java_Gradle - Fatal编程技术网

Java 如何使gradle jar附加到清单而不是覆盖?

Java 如何使gradle jar附加到清单而不是覆盖?,java,gradle,Java,Gradle,我希望将一个gradle'jar'任务附加到项目中现有的清单文件中,而不是动态创建一个清单文件。可能吗?背后的想法是在文件中添加静态清单条目(供应商、名称等),在build.gradle中添加动态条目(版本、版本号等)。我可以将它们全部放在build.gradle中,但如果想在应用程序功能中使用/公开它们,则它们仅在执行JAR时可用,而不是在通过IDE或gradle run运行应用程序时可用 gradle脚本似乎没有公开该功能。gradle脚本本质上是groovy,因此您可以读取包含静态条目的文

我希望将一个gradle'jar'任务附加到项目中现有的清单文件中,而不是动态创建一个清单文件。可能吗?背后的想法是在文件中添加静态清单条目(供应商、名称等),在build.gradle中添加动态条目(版本、版本号等)。我可以将它们全部放在build.gradle中,但如果想在应用程序功能中使用/公开它们,则它们仅在执行JAR时可用,而不是在通过IDE或
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.
    }
}
我希望这对你有帮助