springboot 生产环境的打包

在生产环境中,java程序的打包方式,如果是web型的一般打成war包。一般服务型的打成jar包。 在springboot中,默认在打包成jar时,会把项目的所有文件打包成一个jar包。这个包会非常大。配置文件内置。不能修改。假如修改,需要重新打包整个项目。由于上面的这些缺点。现在改进打包方式,改进后的打包方式的优点:

  1. jar包和jar包的依赖lib包分开,在没有新增加依赖时,重新发布项目只需要发布jar包,通常很小只有几百K。
  2. 项目的config文件和jar分开,如需要修改,重启就可以生效。不用重新打包。

下面详细介绍下步骤:

1.在项目的pom文件中添加build

<build>
        <!-- 打包后文件的最终名字-->
        <finalName>${artifactId}-${version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- springboot 的main 启动类 方法的入口 -->
                    <mainClass>cn.com.SpringbootDemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>

            </plugin>
            <!-- The configuration of maven-assembly-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <!-- The configuration of the plugin -->
                <configuration>
                    <descriptors>
                          <!-- 配置 assembly 的路径 -->
                        <descriptor>src/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2.新建src/assembly/assembly.xml文件 在该文件中配置具体的打包方式

<assembly>
    <id>bin</id>
    <formats>
        <format>zip</format>
    </formats>

    <dependencySets>
        <dependencySet>
               <!--不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录-->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>

    <fileSets>
        <!-- 把项目脚本文件,打包进zip文件的根目录 -->
        <fileSet>
            <directory>${project.basedir}/src/bin</directory>
            <outputDirectory>bin</outputDirectory>
            <includes>
                <include>*.sh</include>
            </includes>
        </fileSet>

        <!-- 把配置文件,打包进zip文件的config目录 -->
        <fileSet>
            <directory>${project.basedir}/src/main/resources</directory>
            <outputDirectory>conf</outputDirectory>
            <includes>
                <include>**/*</include>
                <include>*.xml</include>
                <include>*.properties</include>
                <include>*.yml</include>
                <include>*.key</include>
            </includes>
        </fileSet>

        <!-- 把jar,打进zip文件的根目录 -->
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

新建 src/conf 文件夹,在执行打包的时候会把src/main/resources下面的配置文件打包到zip包的conf文件夹中。

新建src/bin文件夹,在该文件夹中添加对应的项目的启动之类的脚本。打包后会在zip包的bin文件夹中。

最后 执行maven的package命令。在target目录会发现对应的zip 包。

上传到服务器使用 unzip 命令 解压。会得到如下的文件

输入图片说明

进入到bin目录发现start.sh脚本 开始运行。

输入图片说明

跑起来了嘿。

输入图片说明

转载于:https://my.oschina.net/nxxYqmvPOvsfH/blog/1789166

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值