--自动编译,持续集成,测试,打包,发布/部署

Java开发中,很多工作比较繁琐:新功能开发完毕,测试,修改配置文件,打包,发布…我们时常能听到将开发流程自动化的声音,然而实际真正将自动化落地的有多少呢,你还在一遍遍的用IDE打包,然后手工部署吗,现在我们需要将这一切完全自动化,专心写代码:)

注:以下环境除Nexus外,其他都需要在同一台机器中安装,所有操作是在服务器中,不是本地开发环境,所以会省略一些不必要的步骤。

  • 操作系统:

Ubuntu 15.10Server x86_64 4.2.0-30-generic

  • JDK:

1.7.0_80 64-BitServer VM

  • Maven:

Apache Maven 3.3.3

  • Jenkins:

jenkins1.653(war)

一 安装JDK

1).创建文件夹

$ sudo mkdir /usr/lib/jvm

2).解压文件

$ sudo tar -zxvf /tmp/jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm

3).配置默认jdk

$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_80/bin/javac" 1 \
    && sudo update-alternatives --set javac /usr/lib/jvm/jdk1.7.0_80/bin/javac \
    && sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_80/bin/java" 1 \
    && sudo update-alternatives --set java /usr/lib/jvm/jdk1.7.0_80/bin/java

4).检查

$ java -version
java version"1.7.0_80"

Java(TM) SERuntime Environment (build 1.7.0_80-b15)

Java HotSpot(TM)64-Bit Server VM (build 24.80-b11, mixed mode)

二 安装Maven

本地配置还可参考Maven安装和基本配置一文,其中有更详细的内容。

1).解压文件

$ sudo tar -zxvf /tmp/apache-maven-3.3.3-bin.tar.gz -C /var/lib

2).创建软链接:

$ sudo ln -s /var/lib/apache-maven-3.3.3 /var/lib/maven

3).修改配置文件

$ mkdir ~/.m2 && cp /var/lib/maven/conf/settings.xml ~/.m2
$ vi ~/.m2/settings.xml

增加如下两个节点:

<servers>
    ...
    <!-- 用于nexus私服部署,请替换成自己实际开发环境中的用户名及密码 -->
    <server>
      <id>nexus-snapshots</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>
    ...
</servers>
 
<profiles>
     ...
     <!-- 指定JDK编译版本 -->
     <profile>
        <id>jdk17</id>
        <activation>
           <activeByDefault>true</activeByDefault>
            <jdk>1.7</jdk>
        </activation>
        <properties>
          <maven.compiler.source>1.7</maven.compiler.source>
          <maven.compiler.target>1.7</maven.compiler.target>
          <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
        </properties>
    </profile>
    ...
</profiles>
 
<!-- 注意:默认的本地仓库位于~/.m2/repository,我们这里保持默认,如果需要更换默认位置,请再加入以下节点(去掉注释) -->
<!--
<settings>
    ...
    <localRepository>/path/to/other/local/repo/</localRepository>
    ...
</settings>
-->

保存退出

4).配置环境变量:

$ sudo vi /etc/profile

增加M2_HOME环境变量:

export M2_HOME=/var/lib/maven
export PATH=$M2_HOME/bin:$PATH

保存退出

5).使立即生效(注意前面有个点):

$ . /etc/profile

6).检查:

$ mvn -version
Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)

Maven home:/var/lib/maven

Java version:1.7.0_80, vendor: Oracle Corporation

Java home:/usr/lib/jvm/jdk1.7.0_80/jre

Default locale:en_US, platform encoding: UTF-8

OS name:"linux", version: "4.2.0-30-generic", arch:"amd64", family: "unix"

三 搭建Nexus私服

参见之前的博文Nexus2私服搭建

四 安装Jenkins(需要JDK1.7+,tomcat方式)

下载:http://jenkins-ci.org/

1).创建文件夹

$ sudo mkdir /var/lib/jenkins

2).安装tomcat:

$ sudo tar -zxvf /tmp/apache-tomcat-7.0.65.tar.gz -C /var/lib
$ sudo ln -s /var/lib/apache-tomcat-7.0.65 /var/lib/tomcat7

3).添加URIEncodingconf/server.xml

$ cd /var/lib/tomcat7
$ sudo vi conf/server.xml

中以下部分:

<Connectorport="8080" URIEncoding="UTF-8"/>

4).添加环境变量:

$ sudo vi bin/catalina.sh
CATALINA_OPTS="-DJENKINS_HOME=/var/lib/jenkins-Xmx1024m"

注意:如果运行一段时间后,Jenkins无法登录,老是返回登录页面,并且后台老是报错:

WARNING: There was an OPT answer. Not currently handled. Option code: 65002 data: 79C6D1DFFA1BBEFC

那就在上述环境变量中再加入下面这个变量:

-Dhudson.DNSMultiCast.disabled=true

5).复制文件

$ cd /var/lib/tomcat7
$ sudo cp /tmp/jenkins.war webapps

6).启动:

$ sudo ./bin/startup.sh

7).访问http://192.168.1.130:8080/jenkins

8).安装必备插件

a. Publish OverSSH(用于ssh远程登录及执行远程命令)

点击系统管理->管理插件

点击可选插件,在右上角过滤框输入ssh,可以看到有很多ssh相关的插件,其中主要有三个可用的,分别是SSH Plugin,Publish Over SSH,和SSH2 EasyPlugin,

经过使用,发现PublishOver SSH这个插件最好用,推荐使用这个:
2019-03-17T03:59:28.png

b. FindBugs Plug-In

该插件要配合findbugs的Maven插件,用于展示bug报告。FindBugs是一款静态代码审查工具,能够在开发阶段找出一些容易忽略的问题和低级的错误。

同样,在可选插件中,输入findbugs,找到FindBugs Plug-In,勾选安装即可。

到此我们第一阶段的准备工作就告一段落了,在下一章节中,我们主要学习如何配置并使用这一套环境来规范并加速我们的开发。

参考:https://wiki.jenkins-ci.org/display/JENKINS/Tomcat


注: 本文原文最初发表在我的CSDN博客,现归档于此。
文章目录