• 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>

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

  • 相关阅读:
    redis学习(四)
    redis学习(三)
    redis学习(二)
    redis学习(一)
    Maven入门(二)pom.xml和核心概念
    Maven入门(一)
    uni-app 引用
    uni-app 搜索栏
    Vue,组件切换-切换动画
    Vue,组件切换-方式2
  • 原文地址:https://www.cnblogs.com/krockey/p/4452748.html
Copyright © 2020-2023  润新知