前言

一套完整开发环境 - 图1 最近不是很忙,于是乎自己搭建了一套环境,这里记录一下搭建过程。

准备工作

  • 服务器,本人使用的是阿里的,没有专用服务使用虚拟机,安装linux系统也是一样的。
  • 各类程序包
    1. JDK1.8
    2. mysql5.7(公司常用版本比较稳定)
    3. maven3.5
    4. tomcat8.5.6
    5. jenkins自动化部署
    6. nexus3.6搭建maven私服

      一 、 服务器的配置以及简单使用(阿里云)


简单来说,服务器的使用,不管是阿里云还是腾讯云,等等,其实大同小异,我们只需要了解使用其中一种即可。接下来就一步一步记录对阿里云的简单使用。(这里小编也是第一次使用云服务,所有记录尽量详细)

1. 阿里云的申请
登录官网查看云服务器购买列表,购买时选择地区、操作系统镜像(对于我们开发来说一般都是linux)等,还有一些购买数盘等,对于初使者来说,没必要。
购买页:(红框为大致我们需要选择部分)
一套完整开发环境 - 图2

2. 云控制台
一套完整开发环境 - 图3
云控制台根据不同类型的服务各有不太相同,但是刚接触我们大致使用的功能的都是类似的。
当我们点击服务名,即可进入当实例的详情页面,详情页面中包括实例的详情、对服务器的内存,cpu的监控模块,云盘使用情况,安全组等模块,如下图:
一套完整开发环境 - 图4
使用远程工具shell连接该服务,建议首先修改密码:
一套完整开发环境 - 图5
修改完密码我们就可以拿着密码用户为root通过shell连接该实例进行其它操作。
参考文章:Linux学习1-Xshell连接阿里云ECS服务器

特别注意:
当我们在云服务器上部署项目,等其它应用时,比如mysql,我们搭建完mysql需要在安全组中开放我们的外部访问的端口号:
一套完整开发环境 - 图6

二、安装JDK

安装JDK的方式有多种,这里小编使用的是yum安装方便无需配置,安装即可使用,但是不是所有应用都可以使用这种简单方式。

安装过程:
一套完整开发环境 - 图7 1. 检查是否已安装JDK及卸载

  1. //以下命令二选一,中括号选一即可
  2. yum list installed | grep [java][jdk]
  3. rpm -qa | grep [java][jdk][gcj]

一套完整开发环境 - 图8 执行无任何jdk信息出现,即可继续安装,反正这需要先卸载原有jdk
一套完整开发环境 - 图9 卸载JAVA环境:

  1. yum -y remove java-1.6.0-openjdk* //表时卸载所有openjdk相关文件输入
  2. yum -y remove tzdata-java.noarch //卸载tzdata-java

一套完整开发环境 - 图10 2. 安装jdk
一套完整开发环境 - 图11 查看JDK软件包列表

  1. yum search java | grep -i --color jdk

一套完整开发环境 - 图12 安装

  1. #或者如下命令,安装jdk1.8.0的所有文件
  2. yum install -y java-1.8.0-openjdk*

一套完整开发环境 - 图13 查看JDK是否安装成功

  1. java -version
  2. #该命令应出现安装好的jdk的版本信息

一套完整开发环境 - 图14%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-33%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2E%22%20x%3D%22500%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(779%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E9%85%8D%3C%2Ftext%3E%0A%3Cg%20transform%3D%22translate(932%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E7%BD%AE%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(1865%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E7%8E%AF%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(2798%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E5%A2%83%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(3731%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E5%8F%98%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(4664%2C0)%22%3E%0A%3Ctext%20font-family%3D%22monospace%22%20stroke%3D%22none%22%20transform%3D%22scale(71.759)%20matrix(1%200%200%20-1%200%200)%22%3E%E9%87%8F%3C%2Ftext%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=3.%20%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%0A&id=OQH33)
JDK默认安装路径/usr/lib/jvm
进入linux的系统配置文件中/etc/profile文件添加如下命令

  1. # set java environment
  2. JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64//根据自己安装的jdk版本
  3. PATH=$PATH:$JAVA_HOME/bin
  4. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  5. export JAVA_HOME CLASSPATH PATH

一套完整开发环境 - 图15保存关闭profile文件,执行如下命令生效,查看jdk配置

  1. source /etc/profile #生效命令,刷新全局配置文件
  2. #查看jdk安装目录
  3. echo $JAVA_HOME
  4. echo $PATH
  5. echo $CLASSPATH

四 、 mysql安装

同上,为了方便快捷的安装mysql,使用的是yum安装mysql5.7
安装过程:
1. 配置YUM源

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm #下载mysql源安装包

2. 安装mysql源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

3. 检查mysql源是否安装成功

yum repolist enabled | grep “mysql.-community.

安装成功:一套完整开发环境 - 图164. 安装MySQL

  1. yum install mysql-community-server
  1. 启动MySQL服务
    1. systemctl start mysqld

修改mysql配置文件
修改mysql配置文件,关闭密码策略(为了设置简单的密码,测试使用,生产切不可用)

  1. #如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
  2. validate_password = off
  3. #添加字符集
  4. [mysqld]
  5. character_set_server=utf8
  6. init_connect='SET NAMES utf8'

登录mysql,修改root密码

  1. mysql -uroot -p #第一次登录使用默认密码
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; #修改密码
  3. systemctl restart mysqld #重新启动mysql服务使配置生效

7. 添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
  2. # %代表所有ip
  3. flush privileges; #刷新生效

至此mysql就安装完成了,也可以使用远程工具进行连接。
参考文章:CentOS7 64位下MySQL5.7安装与配置(YUM)
完全卸载过程

  1. rpm -qa |grep -i mysql #查看mysql安装了哪些东西
  2. yum remove mysql-community-common-5.7.20-1.el7.x86_64 #卸载查询出的服务
  3. find / -name mysql #查找mysql相关目录
  4. rm -rf #删除所有目录
  5. rm -rf /etc/my.cnf #删除/etc/my.cnf
  6. rm -rf /var/log/mysqld.log
  7. #删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)

五、 maven 环境搭建

安装过程

  1. wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
  2. yum -y install apache-maven

查找maven安装路径

  1. 1)查找包路径
  2. rpm -qa|grep apache-maven
  3. 2)根据包路径查找安装目录
  4. rpm -ql apache-maven-3.5.2-1.el7.noarch
  5. 在搜索结果中就有maven的安装目录。

配置文件路径

  1. /etc/maven/settings.xml

六、搭建nexus3环境仓库

一套完整开发环境 - 图17 1. 官网下载对象的压缩包:下载地址:http://www.sonatype.org/nexus/go
一套完整开发环境 - 图18 2. 通过shell上传到服务器
一套完整开发环境 - 图19 3. 解压命令,解压

  1. tar -zxvf

一套完整开发环境 - 图20 4. 调整jvm参数

  1. cd /nexus/bin/
  2. vim nexus.vmoptions
  3. #根据服务器适当调整jvm参数

一套完整开发环境 - 图21
保存
启动nexus(在bin目录下):

  1. ./nexus start

一套完整开发环境 - 图22

配置nexus私服,导入阿里云

1. 登录nexus的可视化web页面,默认端口号8081

  • Nexus默认的端口是8081,可以在etc/nexus-default.properties配置中修改。
  • Nexus默认的用户名密码是admin/admin123
  • 当遇到奇怪问题时,重启nexus,重启后web界面要1分钟左右后才能访问。

Nexus的工作目录是sonatype-work(路径一般在nexus同级目录下),日志文件也在这里。
在阿里云控制台放开8081端口

  1. 访问:http://8.***.101.174:8081/

一套完整开发环境 - 图23
出现上面的页面即代表安装成功,

2 . 配置 nexus
先看一下大概的目录结构:
一套完整开发环境 - 图24

资源库也就是这么三种
参考文章:Nexus搭建Maven私服全攻略一:认识Nexus与索引
2 . 1 创建 Blob Strores
在创建 repository之前,还是需要先设定一个指定的文件存储目录(用来存放jar包),便于统一管理。在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。
一套完整开发环境 - 图25
2 . 2 创建 Proxy Repository 代理仓库
一套完整开发环境 - 图26
配置 Proxy Repository代理仓库。创建页面出来之后,页面上有三个框是必填的:
一套完整开发环境 - 图27
注意:可以多建几个proxy repository,以便于可以加入更多的远程maven仓库到我们的 group 仓库中。唯一一点,就是看加入的proxy资源库使用的是国内的还是国外的远程仓库。加入group资源库的顺序应是:

hosted仓库 > 国内proxy仓库 > 国外proxy仓库。

这里推荐几个远程仓库:

2 . 3 创建 hosted repository 宿主仓库

  • Hosted有三种方式:Releases、Snapshot、Mixed
  • Releases: 一般是已经发布的Jar包
  • Snapshot: 未发布的版本
  • Mixed:混合的


一套完整开发环境 - 图28
一套完整开发环境 - 图29
2 . 4 创建 group repository 仓库组
一套完整开发环境 - 图30
一套完整开发环境 - 图31

3.2部署上传Jar:配置distributionManagement

配置 distributionManagement 节点,执行 deploy 命令时,会将jar发布到指定地址。

注意:配置20180929-SNAPSHOT时,如果后面添加了SNAPSHOT,则会自动发布到指定的snapshots仓库,否则发布到releases仓库。
项目的pom.xml:

  1. <project>
  2. ...
  3. <distributionManagement>
  4. <repository>
  5. <id>nexus-releases</id>
  6. <name>Nexus Release Repository</name>
  7. <url>http://localhost:8081/nexus/content/repositories/releases/</url>
  8. </repository>
  9. <snapshotRepository>
  10. <id>nexus-snapshots</id>
  11. <name>Nexus Snapshot Repository</name>
  12. <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
  13. </snapshotRepository>
  14. </distributionManagement>
  15. ...
  16. </project>

settings.xml:

  1. <settings>
  2. ...
  3. <servers>
  4. <server>
  5. <id>nexus-releases</id>
  6. <username>admin</username>
  7. <password>admin123</password>
  8. </server>
  9. <server>
  10. <id>nexus-snapshots</id>
  11. <username>admin</username>
  12. <password>admin123</password>
  13. </server>
  14. </servers>
  15. ...
  16. </settings>

两个文件的 id 需要保持一致!
参考文章:Nexus搭建Maven私服全攻略二:安装和配置Nexus3


七、安装tomcat

tomcat的安装相对简单:

  1. 从tomcat官网下tomcat的压缩包

    https://tomcat.apache.org/download-80.cgi

  2. 安装

  • 解压文件

    1. tar -zxvf 压缩文件名.tar.gz
  • 修改8080端口为80端口

    假设tomcat所在目录为/usr/local/apache-tomcat/

1、打开tomcat配置文件

  1. #vi /usr/local/apache-tomcat/conf/server.xml

2、打开Tomcat配置文件之后按 /8080 快速检索
3、修改端口,按 i 进行,将8080 修改为 80
4、按:wq 保存并退出
5、 重启tomcat

  1. #/var/apache-tomcat/bin/shutdown.sh
  2. #/var/apache-tomcat/bin/startup.sh

八、搭建jenkins自动化持续部署

  1. 下载

    Jenkins官网下载安装包,https://jenkins.io/download/(根据个人事迹需求下载对应Linux/Windows系统的安装包版本,本文下载的是Jenkins.war包)

  2. 启动jenkins项目

执行终端命令将启动Jenkins
一套完整开发环境 - 图32

  1. jenkins—基本配置
    1. 通过启动服务的主机IP+端口号可以打开,这段时间可能会比较慢,Jenkins在不断的加载资源文件
    2. 加载完成后需要去指定的目录下获取解锁秘钥
      一套完整开发环境 - 图33
    3. 获取解锁秘钥
      一套完整开发环境 - 图34
    4. 选择入门安装的方式,Jenkins会自动下载需要的安装包及插件
      一套完整开发环境 - 图35
    5. 加载完成后需要设置自己的管理员账号/密码
      一套完整开发环境 - 图36
    6. 进入Jenkins主页
      一套完整开发环境 - 图37
  2. jenkins—系统配置
    1. maven插件

      发现没有maven项目的选项
      一套完整开发环境 - 图38

安装maven插件
搜索关键字:Maven Integration
一套完整开发环境 - 图39

  1. 配置maven,git,jdk

    git需要额外安装,直接yum install git就可以了,参考:官网。不喜欢yum的可以用其他方法。
    maven不需要额外安装。
    一套完整开发环境 - 图40
    一套完整开发环境 - 图41
    一套完整开发环境 - 图42

  1. git SSH公钥配置
  2. 安装插件:

    Maven Integration plugin
    Publish Over SSH

  3. 系统管理->系统设置 ssh server 配置:
    如果用的是统一的key或者密码,则配置一次就可以了。
    如果每个服务器密码都不一样,需要点击高级按钮,把
    复选框 Use password authentication, or use a different key 勾选上就行了。
    一套完整开发环境 - 图43

  4. 创建maven项目
    1. 新建选择新建一个maven项目,如果没有安装Maven Integration plugin插件,则不会出现该item。
      一套完整开发环境 - 图44
    2. 源码管理工具
      配置为git
      一套完整开发环境 - 图45
      一套完整开发环境 - 图46
    3. 执行shell脚本
      一套完整开发环境 - 图47
  1. #!/bin/sh
  2. # kill tomcat pid
  3. # 这句尤为重要
  4. export BUILD_ID=tomcat_build_id
  5. # 1.关闭tomcat
  6. pidlist=`ps -ef|grep tomcat|grep -v "tomcat_jenkins"|grep -v "grep"|awk '{print $2}'`
  7. function stop(){
  8. if [ "$pidlist" == "" ]; then
  9. echo "----tomcat已经关闭----"
  10. else
  11. echo "tomcat进程号:$pidlist"
  12. kill -9 $pidlist
  13. echo "KILL $pidlist."
  14. fi
  15. }
  16. stop
  17. pidlist2=`ps -ef|grep tomcat|grep -v "tomcat_jenkins"|grep -v "grep"|awk '{print $2}'`
  18. if [ "$pidlist2" == "" ]; then
  19. echo "----关闭tomcat成功----"
  20. else
  21. echo "----关闭tomcat失败----"
  22. fi
  23. # 2.移除原来tomcatwebapps中的项目文件夹
  24. rm -rf /usr/share/tomcat/webapps/ROOT*
  25. # 3.复制jenkins生成的war包到tomcatwebapps
  26. cp -r /var/lib/jenkins/workspace/maven/target/stream-0.0.1-SNAPSHOT.war /usr/share/tomcat/webapps
  27. sleep 5s
  28. # 4.修改war包的名称
  29. mv /usr/share/tomcat/webapps/stream-0.0.1-SNAPSHOT.war /usr/share/tomcat/webapps/test.war
  30. # 5.启动tomcat
  31. cd /usr/share/tomcat/bin
  32. ./startup.sh

d. 打包构建项目
一套完整开发环境 - 图48e. 保证构建项目,查看控制台输出信息

  1. 配置jenkins钩子程序,持续化部署项目
    1. jenkins中的配置—配置token值
      一套完整开发环境 - 图49b. gitHub账户中配置
      一套完整开发环境 - 图50
      一套完整开发环境 - 图51