maven打包成可运行jar包碰见的坑

写了一下脚本,想在线上跑一下,第一反应是直接把.java文件在线上直接跑,可是因此来的jar包还得手动一个一个添加(其实不知道怎么添加。。。。),而后想到还不如直接新建一个项目,只包含这一个文件,而后把整个项目打包,美滋滋java

1,新建Maven工程apache

2,让项目跑起来(其实就是导入依赖)maven

3,重点,pom文件中加入函数

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>Main函数(xxx.xxx.xxx)</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <!-- bind to the packaging phase -->
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

而后package,会生成两个文件,一个包好依赖,,一个不包含。ui

简单解释一下:生命周期

<descriptorRef>jar-with-dependencies</descriptorRef>

打包时都添加依赖包ip

<mainClass>com.gzj.CookieTest</mainClass>

主函数位置ci

<id>make-assembly</id>

名字任意it

<phase>package</phase>

绑定到package生命周期阶段上io

<goals>
    <goal>single</goal>
</goals>

只运行一次

4,而后把办好依赖的jar包扔到线上,java -jar  XXXXXXXXX.jar,ok

相关文章
相关标签/搜索