Maven 对不同的部署环境打包

使用maven打包不同部署环境的包总结:

概要

  1. 批处理文件实现自动打包
    2.配置maven变量实现打不同部署环境的包(开发环境、测试环境、生产环境)

步骤

一、创建一个bat文件,输入以下内容:

@echo off


rem 打包环境:dev(开发环境)、test(测试环境)、prod(生产环境)
rem 不同环境包只需改该变量为相应值即可
set evn=test
rem profile id 如:testId,这个可以随便改一个名称
set project=testId


rem 日志文件
set log_file=%CD%\%evn%_build.log


rem 工程项目的路径,这里改成自己的工程路径
set work_home=D:\testProject


rem 生成war包所在路径,改成自己的路径
set packe_path=D:\packes\%evn%


echo %date% %time% ********开始执行自动打包**********
echo %date% %time% 日志文件 %log_file%
echo %date% %time% 工程目录 %work_home%
echo %date% %time% 生成包目录 %packe_path%
echo %date% %time% 执行中......
echo.
echo %date% %time% *******************开始执行自动打包***************************** > %log_file%
echo %date% %time% 打包日志路径 %log_file% >> %log_file%
echo %date% %time% 打包工程路径 %work_home% >> %log_file%
echo %date% %time% 生成包路径 %packe_path% >> %log_file%
echo.




echo %date% %time% 打包开始
pushd %work_home%\test
call mvn clean >> %log_file%
call mvn install >> %log_file%
call mvn package -P %project% -Devn=%evn% -Dfile=%packe_path% >> %log_file%
echo %date% %time% 打包结束


echo.
echo %date% %time% ************************自动打包执行结束******************** >> %log_file%
echo.
echo %date% %time% *********自动打包执行结束*********
rem 等待5秒 ping本机5次不使用默认的次数,nul是不显示ping信息:
@ping -n 5 127.1>nul

二、在项目下,对需要修改成不同环境的配置文件添加前缀为:dev_,test_,prod_ 的文件,如对jdbc在不同的部署环境修改不同的数据库连接。那么在jdbc配置文件的同目录下创建几个文件,把文件的数据库链接修改成对应的环境的数据库链接:

dev_jdbc.properties

test_jdbc.properties

prod_jdbc.properties

说明:前缀即bat文件里面指定的变量:evn=test

三、在项目的pom.xml文件 build前面添加如下信息:

<profiles>
      <profile>
      
        <id>testIdid>
        <build>
          <plugins>
            <plugin>
              <artifactId>maven-antrun-pluginartifactId>
              <version>1.8version>
              <executions>
                <execution>
                  <phase>compilephase>
                  <configuration>
                    <tasks>
                        <delete file="${project.build.directory}/classes/jdbc.properties" />  
                        <move file="${project.build.directory}/classes/${evn}_jdbc.properties" tofile="${project.build.directory}/classes/jdbc.properties"/>
                    tasks>
                  configuration>
                  <goals>
                    <goal>rungoal>
                  goals>
                execution>
                <execution>
                <id>id.packageid>
                  <phase>packagephase>
                  <configuration>
                    <tasks>
                        
                        <copy file="target/test.war" todir="${file}" overwrite="true"/>
                    tasks>
                  configuration>
                  <goals>
                    <goal>rungoal>
                  goals>
                execution>
              executions>
            plugin>
          plugins>
        build>
      profile>
    profiles>

到此,maven 通过变量打不同环境的包结束。
使用maven的心得后续慢慢总结。

尊重原创,转载请表明出处。

你可能感兴趣的:(maven,自动打包)