【发布时间】:2016-05-23 22:07:44
【问题描述】:
我希望 maven 将由 shade-plugin 创建的 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 文件生成的,然后放入最外层的文件夹中,准备好与 shell 脚本一起压缩。原因是为了让shell脚本可以调用jar文件来执行项目。
我希望其他程序员能够轻松解压缩文件并运行 shell 脚本而无需担心。而且我还需要让maven将脚本和jar打包在一起。我不确定如何在阴影插件中实现它。
注意:我不想使用 assembly-plugin,因为它不能很好地打包依赖的 jar。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
<outputFile>../../guide/${project.artifactId}-${project.version}-shaded.jar</outputFile>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>projB.classB</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
【问题讨论】:
标签: shell maven jar maven-assembly-plugin maven-shade-plugin