我希望maven将shade插件创建的超级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包装在一起。但我不确定如何在shaded插件中实现这一点。
注意:我不想使用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>