zoukankan      html  css  js  c++  java
  • [转] 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包不会被解开)

  • 相关阅读:
    博客备份小工具3
    博客转发小工具1
    04-属性选择器
    05-伪类选择器
    03-高级选择器
    02-css的选择器
    01-css的引入方式
    函数进阶-(命名空间、作用域、函数嵌套、作用域链、函数名本质、闭包)
    函数基础-(引子、定义函数、调用函数、函数返回值、函数参数)
    Python之路【第08章】:Python函数
  • 原文地址:https://www.cnblogs.com/pekkle/p/9680769.html
Copyright © 2011-2022 走看看