工程实例代码:https://github.com/chocolateBlack/multi_env_folder_maven
目前创新互联公司已为1000多家的企业提供了网站建设、域名、网站空间、网站托管运营、企业网站设计、柯桥网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
利用Maven、Jenkins实现项目自动化部署,能够按照bin、conf、lib文件进行打包,并能够通过Jenkins按照环境一键发不到服务器上
path=${hdfs.path}
profile的配置如下:
dev
dev
/dev/wh/source/tp
true
test
dev
/test/wh/source/tp
接下来就需要让maven能够解析conf文件夹中Maven属性,这就是maven-resources-plugin要做的事情。
开启资源过滤,并指定过滤的目录。以下配置指定src/main/conf目录下所有类型的文件开启资源过滤,并将解析后的文件指定输出到target/class/conf目录下
src/main/conf/
true
**/*.*
conf
2.其次,利用maven-assembly-plugin插件,将编译好的项目分成bin、conf、lib目录。
org.apache.maven.plugins
maven-assembly-plugin
2.6
make-assembly
package
single
com.test.HelloMaven
jar-with-dependencies
${project.name}
src/main/assembly/assembly.xml
关于文件分发的assembly.xml配置:
src/main/bin
bin
755
target/classes/conf/
conf
755
unix
*.formatted
755
${project.artifactId}-${project.version}.jar
/lib/
runtime
${project.groupId}:${project.artifactId}
755
${project.name}-jar-with-dependencies.jar
/lib/
runtime
项目结构图:
通过mvn package -Pdev命令打包后conf中的配置文件是按照dev环境生成的结果
解析后的conf.yamlpath=/dev/wh/source/tp
target目录下的结构图,红框标记的就是期待的结构目录
3.项目按bin、conf、lib生成部署结构,剩下的事情就交给Jenkins,通过Jenkins以及其插件,将打包结果上传目标服务器
如下主要描述Jenkins配置的主要几个位置