maven 打包 动态启动脚本

本贴最后更新于 1754 天前,其中的信息可能已经东海扬尘

maven 打包 动态启动脚本

本文介绍如何通过 maven 的环境变量动态打包, 并动态改变启动脚本中的环境参数
之前都是每个环境一个启动脚本, 其实启动脚本基本都一样, 只是启动的时候的环境变量不一样, 随着环境越来越多, 这样一个环境一个启动脚本的方式太不优雅了, 每次加环境都得加一份启动脚本, jenkins 配置, alibaba cloud 开发插件配置每次都得微调一下, 于是寻找是否有可以动态改变脚本内容的方式

前提

maven 打包, 配合 assembly 脚本

maven 环境变量(知道这个是怎么回事的直接跳过这部分即可)

设置

pom.xml 文件中加入如下的配置

<profiles>
    <profile>
        <!-- 开发环境 -->
        <id>dev</id>
        <properties>
            <package.environment>dev</package.environment>
        </properties>
    </profile>
<profiles>
  • package.environment : 这个是变量名(你可以直接叫 env 等等, 随意)
  • dev : 中间这个 dev 就是环境变量的值(和你的环境配置文件, 配置地址等一致即可)

使用

maven 打包命令加上 -P dev 标识打 dev 环境的包

assembly 配置

在配置脚本中加入如下

<fileSet>
	<directory>${project.build.scriptSourceDirectory}</directory>
	<outputDirectory></outputDirectory>
	<fileMode>0755</fileMode>
	<filtered>true</filtered>
	<includes>
		<include>startup.sh</include>
	</includes>
</fileSet>
  • directory : 文件地址(打包的时候去哪里复制这些文件
  • outputDirectory : 输出到哪里(我这里是默认位置)
  • fileMode : 文件权限设置
  • filtered : 这个为 true 则表示启用动态变量

启动脚本如何写

本文环境变量的 keypackage.environment
--spring.profiles.active 后面的环境参数就能根据 maven 打包命令动态变更了(maven 命令 -P 后面跟的参数)

如下:

nohup java -jar your.jar --spring.profiles.active=${package.environment} -server -Xms512m -Xmx1024m -Xss256k
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 281 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...