Maven 学习笔记(三)

  有时我们在项目中可能需要打包一个可执行的 jar 包,我最近也遇见了,很傻很天真的用了如下配置:  

<packaging>jar</packaging>

效果一如既往的好,打包成功了,一执行,傻眼了,jvm 很不客气的抛出了一个异常:XXX 中没有主清单异常。网上查资料,方案一大堆:

 <plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-jar-plugin</artifactId>

    <configuration>

        <archive>

            <manifest>                            

                <mainClass>【入口路径】</mainClass>

            </manifest>

        </archive>

    </configuration>

</plugin>

指定 mainclass 即可,又屁颠屁颠的去打包执行,居然又出错了,找不到依赖项。一般来说,这样是就可以了,但是我的场景相对于来说复杂一些,当前的项目中还依赖了一些其他依赖包,需要在打包时把这些依赖文件也打包进来,maven 在 jar 打包时,一般不会把依赖项打包进来,解决方案如下:

未完待续……

这种 jar 的打包,还可以使用 maven-shade-plugin 来解决,但是这个插件我下不下来,代码贴出来:

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-shade-plugin</artifactId>

                <version>3</version>

                <executions>

                    <execution>

                        <phase>package</phase>

                        <goals>

                            <goal>shade</goal>

                        </goals>

                        <configuration>

                            <transformers>

                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

                                    <mainClass>XXX.XXX.Mainclass</mainClass>

                                </transformer>

                            </transformers>

                        </configuration>

                    </execution>

                </executions>

            </plugin>

搞定,做个记录,供后续查阅。

你可能感兴趣的:(maven)