原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处
1、Linux 服务器一台 (假设IP 192.168.1.1)
2、JDK 安装包一枚 (jdk1.7.0_79.tar.gz)
3、Maven 安装包一枚 (apache-maven-3.0.3.tar.gz)
4、jenkins 安装包一枚(jenkins.war)
5、Nexus (maven仓库私服) 服务一台 (假设IP 192.168.1.2)
6、SVN 服务器一台 (假设IP 192.168.1.3)
7、在Linux服务器 上设置映射
vim /etc/hosts
在最后追加
192.168.1.2 maven
192.168.1.3 svn_server
今天主讲 jenkins+svn+maven 持续集成,有些东西会一带而过,个别安装目录请根据自己的情况设定(PS:我所有的安装文件都放在 /opt 目录下)。
解压 jdk1.7.0_79.tar.gz 到 jdk1.7.0_79
tar -zxvf jdk1.7.0_79.tar.gz
设置JAVA环境变量,执行shell命令
vim /etc/profile
在文件最后追加
export JAVA_HOME=/opt/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后执行shell命令
source /etc/profile
执行shell命令测试是否安装成功
java -version
如果出现下图,表示安装成功
解压 apache-maven-3.0.3.tar.gz 到 apache-maven-3.0.3
tar -zxvf apache-maven-3.0.3.tar.gz
修改 maven setting.xml 文件
vim /opt/apache-maven-3.0.3/conf/settings.xml
这里镜像路径首选私服,第二用阿里的
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/opt/maven_repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers>
<server>
<id>Releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>Snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
<id>maven-public</id>
<name>maven-public</name>
<mirrorOf>*</mirrorOf>
<url>http://maven:8081/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>maven-us</id>
<name>maven-us</name>
<mirrorOf>*</mirrorOf>
<url>https://maven-us.nuxeo.org/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>test</id>
<repositories>
<repository>
<id>local-nexus</id>
<url>http://maven:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>test</activeProfile>
</activeProfiles>
</settings>
jenkins.war, 这个war包既可以放到WEB容器(Tomcat,JBoss等)里运行,也可以独立运行;这里我就不使用WEB容器了,直接启动
java -jar jenkins.war
启动成功的样子
这时候在浏览器里输入
http://192.168.1.1:8080/jenkins
出现下面的页面
根据提示,输入服务器上 /root/.jenkins/secrets/initialAdminPassword 里的密码,(或者看上一张截图里的红框,就是密码,每个服务器都不一样)
进入到下一步
点击红框按钮,进入插件安装界面
插件安装成功后,创建一个管理员账号
点击 “Save and Finish” 按钮 进入到主页
点击左侧 “系统管理”—>”Global Tool Configuration” 按钮进入”全局工具配置”设置,这里我们设置 JDK 和 Maven
点击 “新增JDK” 按钮
出现以下界面,把 “自动安装” 勾选去掉,输入”别名”和 “JAVA_HOME”, JAVA_HOME 路径请参见第二步 JDK的安装路径
当前页面往下滚动,找到 Maven 节点,Maven 安装原理同 JDK,然后点击保存按钮,到此,配置JDK和Maven完毕。
pom.xml 配置如下,这里着重注意 scm,distributionManagement 这两个标签的配置;
(1)scm 标签是Maven项目在打 release 时候打 tag 用到的。
(2)distributionManagement这个对应 Maven 服务的配置文件 setting.xml 里的 servers—>server 标签(id对应),server 下的 username,password 就是 Nexus(Maven仓库私服)的账号密码。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dmw</groupId>
<artifactId>my-app</artifactId>
<packaging>war</packaging>
<version>1.0.4-SNAPSHOT</version>
<name>${project.artifactId}</name>
<properties>
<jdk.version>1.7</jdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.2</version>
</plugin>
</plugins>
</build>
<scm>
<connection>scm:svn:svn://svn_server:9999/project/new_project/my-app/trunk/my-app</connection>
<developerConnection>scm:svn:svn://svn_server:9999/project/new_project/my-app/trunk/my-app</developerConnection>
<url>svn://svn_server:9999/project/new_project/my-app/trunk/my-app</url>
</scm>
<distributionManagement>
<repository>
<id>Releases</id>
<name>Internal Releases</name>
<url>http://maven:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://maven:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
点击新建按钮
输入 Job 名称,选择构建一个maven项目,点击保存,进入设置页面
设置页面
源码管理选择SVN,输入项目SVN地址,点击钥匙图标Add
输入SVN账号密码 点击Add按钮保存
下拉框选择刚才新增的SVN账号
构建触发器下选择项
构建环境选择项
输入构建命令(都是Maven命令)
输入构建结果通知接收邮件地址,然后点击保存按钮
进入到 my_app job界面,点击 立即构建 按钮,开始构建
点击小三角,进入控制台,查看日志输出