使用maven插件

时间:2015-11-20 11:34:51

标签: maven maven-plugin maven-shade-plugin

我有一个由maven-shade-plugin构建的jar。 它包含带有多个文件的META-INF / services。 这些文件名称错误(因为错误https://issues.apache.org/jira/browse/MSHADE-182)。 我想重命名这些文件。

使用maven执行此操作的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

肮脏的黑客,但它适用于我

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <configuration>
                        <target>
                            <echo message="unjar" />
                            <unzip src="${project.build.directory}/${artifactId}-${version}.jar" dest="${project.build.directory}/unpacked/" />
                            <echo message="rename service providers in META-INF/services" />
                            <move todir="${project.build.directory}/unpacked/META-INF/services" includeemptydirs="false">
                                <fileset dir="${project.build.directory}/unpacked/META-INF/services"/>
                                <mapper type="glob" from="*" to="${shade.package}.*"/>
                            </move>
                            <echo message="jar back" />
                            <jar destfile="${project.build.directory}/${artifactId}-${version}.jar" basedir="${project.build.directory}/unpacked" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>