一、背景
- 就目前而言,Jenkins依旧是CI的主流工具
- Maven也因为其强大而简捷的命令使用,而广受java代码用户的喜爱
- 今天简单聊聊怎么把Jenkins的参数传递到Maven工程的代码层面
二、操作方式
Jenkins Job中需要配置如下:
- 打开Job链接,点击Job的Configure(中文叫配置),选择参数化构建,添加添加字符类型参数,添加后,点保存Job配置即可,比较简单,不截图了,例如
- 添加第一个参数serviceName
- 添加第二个参数swaggerHost
- 添加第三个参数swaggerPort
maven工程代码中需要配置如下:
- maven工程的代码中添加代码,读取系统参数值,例如
String serviceName = System.getProperty("serviceName"); String swaggerHost = System.getProperty("swaggerHost"); String swaggerPort = System.getProperty("swaggerPort");
- maven工程的pom文件中根节点/build节点下添加plugins,例如
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <encoding>UTF-8</encoding> <source>8</source> <target>8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M1</version> <configuration> <systemPropertyVariables> <serviceName>${serviceName}</serviceName> <swaggerHost>${swaggerHost}</swaggerHost> <swaggerPort>${swaggerPort}</swaggerPort> </systemPropertyVariables> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
- maven工程的pom文件中根结点下添加properties,例如
<properties> <!--用于支持mvn test命令的group参数配置--> <serviceName></serviceName> <swaggerHost></swaggerHost> <swaggerPort></swaggerPort> </properties>
至此,配置完成,参数触发Jenkins Job,例如使用mvn命令即可:mvn clean test -DserviceName=$serviceName -DswaggerHost=$swaggerHost -DswaggerPort=$swaggerHost 就可以了,参数就传递到了代码里,