• [转] maven打包可运行的fat-jar的简单方法


    [From] https://blog.csdn.net/tearsky253/article/details/75948721

    问题

    在使用“mvn package”命令编译application之后,生成的.jar文件不能直接被“java -jar”命令运行,一般都是因为: 
    1. Manifest中没有主清单属性。 
    2. 依赖项在.jar文件中不存在。

    这两个问题可以通过在pom.xml中增加build plugin来解决。

    方法1

    使用maven-assembly-plugin来打包fat-jar。

    假设我们的application的Main Class是practice.spring.sprice.App,那么我们需要在pom.xml中增加如下一段:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>practice.spring.sprice.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    这种方法打包出来的.jar中: 
    1. practice.spring.sprice.App会被作为主类。 
    2. 包含所依赖的所有jar的内容(这些jar包会被解开)。

    方法2

    使用spring-boot-maven-plugin来打包fat-jar。 
    在pom.xml中增加如下一段:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.6.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    这种方法打包出来的.jar中: 
    1. org.springframework.boot.loader.JarLauncher会被作为主类,它会自动调用应用程序中的main方法。 
    2. 包含所依赖的所有的jar包(这些jar包不会被解开)

  • 相关阅读:
    超市名词解释
    卖功能?买利益?还是买价值?
    店长如何防止顾客外流
    生鲜在卖场中的六大类别
    卖场商品ABCD分类原则
    零售业常用的数字管理公式及其意义
    零售店的利润类型分析
    把握好生鲜经营的关键因素
    常见的心理定位套路
    [转]New .Net三层架构
  • 原文地址:https://www.cnblogs.com/pekkle/p/9680769.html
Copyright © 2020-2023  润新知