这篇文章主要介绍“maven怎么打包动态环境变量”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“maven怎么打包动态环境变量”文章能帮助大家解决问题。
介绍如何通过maven的环境变量动态打包, 并动态改变启动脚本中的环境参数
之前都是每个环境一个启动脚本, 其实启动脚本基本都一样, 只是启动的时候的环境变量不一样, 随着环境越来越多, 这样一个环境一个启动脚本的方式太不优雅了, 每次加环境都得加一份启动脚本, jenkins配置, alibaba cloud开发插件配置每次都得微调一下, 于是寻找是否有可以动态改变脚本内容的方式
maven 打包, 配合 assembly 脚本
设置
在 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 环境的包
在配置脚本中加入如下
<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则表示启用动态变量
本文环境变量的key为package.environment
–spring.profiles.active 后面的环境参数就能根据maven打包命令动态变更了(maven 命令 -P 后面跟的参数)
如下:
nohup java -jar your.jar --spring.profiles.active=${package.environment} -server -Xms512m -Xmx1024m -Xss256k
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用
6、mvn clean install -Dmaven.test.skip=true 打成jar包,并且抛弃测试用例打包
7、mvn clean pakage -Dmaven.test.skip=true 动态 web工程打 war包,Java工程打 jar 包 ,并且抛弃测试用例打包
Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。
要想jar包能直接通过java -jar xxx.jar运行,需要满足:
1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里;
2、要能加载到依赖包。
在pom.xml中配置:
<plugin> <!--用于指定加载的主类--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.zyd.blog.BlogWebApplication</mainClass> <layout>JAR</layout> <!--构建完整可执行程序,可以直接运行--> <executable>true</executable> </configuration> </plugin>
关于“maven怎么打包动态环境变量”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。