Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
maven zip uber jar和shell脚本_Shell_Maven_Jar_Maven Assembly Plugin_Maven Shade Plugin - Fatal编程技术网

maven zip uber jar和shell脚本

maven zip uber jar和shell脚本,shell,maven,jar,maven-assembly-plugin,maven-shade-plugin,Shell,Maven,Jar,Maven Assembly Plugin,Maven Shade Plugin,我希望maven将shade插件创建的uber jar与all_files目录中的shell脚本结合起来 项目结构如下所示: all_files/ mvn_script.sh projB-shaded.jar maven_project/ guide/ parent-pom.xml projA/ pom.xml projB/ pom.xml jar由

我希望maven将shade插件创建的uber jar与all_files目录中的shell脚本结合起来

项目结构如下所示:

all_files/
    mvn_script.sh
    projB-shaded.jar

    maven_project/
        guide/
            parent-pom.xml
        projA/
            pom.xml
        projB/
            pom.xml
jar由projectB的pom文件生成,然后放入outtermost文件夹中,准备使用shell脚本进行压缩。原因是shell脚本可以调用jar文件来执行项目

我希望其他程序员能够轻松地解压文件并运行shell脚本而不必担心。我还需要让maven将脚本和jar打包在一起。我不确定如何在着色插件中实现这一点

注意:我不想使用汇编插件,因为它不能很好地打包依赖的JAR


org.apache.maven.plugins
maven阴影插件
2.4.3
包裹
阴凉处
真的
../../guide/${project.artifactId}-${project.version}-shadded.jar
项目类别B

您不想使用
maven汇编插件来创建uber-jar。但是你会想用它来创建这个ZIP

目前,您的
maven shade插件
已绑定到
阶段。您可以将该执行转移到
prepare package
阶段(因为它实际上准备了您的最终打包),添加绑定到
package
阶段的
maven汇编插件的执行。您的程序集将基于着色JAR(自执行着色插件以来将存在)和shell脚本创建一个ZIP

示例描述符如下所示:


如何将文件projB-shade.jar和mvn_script.sh添加到单个zip文件中?在prepare包中运行shade会导致失败。它似乎必须在包中运行,或者是否有其他配置允许它更早地运行?