006 jenkins + maven + springboot + git(分支) 项目

1.新建任务

    新建任务 --> 构建一个自由风格的软件项目 --> HelloWorld

2.源码管理

    这里以git为例,

    Repository URL 代码路径: https://github.com/995586041/jenkins.git 这是我自己建的springboot测试项目,需要的可以fork一份,然后填成自己的git路径

    Credentials 登录GitHub的用户名和密码,点击后面的 “add” 进行添加

    Branch Specifier 需要发布的分支名

3.构建

    1.Execute shell : 在Jenkins所在机器进行代码打包

echo $PATH
mvn clean package -DskipTests -U

    2.Send files or execute commands over SSH : 将Jenkins机器打包之后的代码,发送到服务器,并执行相关启动命令

      Remote directory  发送到远程机器的那个目录,如果不存在,会自动新创建该目录

      这里的启动端口我写的是 9999,可以随意改

#!/bin/bash
cd HelloWorld
nohup java -jar **/*.jar --server.port=9999 & > helloword.log

 

4.保存并构建

    点击构建后,如果没报错,下面的就不用看了,如果报错 "mvn : command not found",难道是没装maven,打开shell,执行 mvn -v,我靠,这他娘的是好的啊,然后开始怀疑,一点是自己点的姿势不对,再点一次,我擦,还是不行啊,然后开始上网查,网上一溜烟的说是权限问题,说什么Jenkins发布时使用的是自己创建的Jenkins用户,不是root用户,没有执行命令的权限,感觉说的有道理啊,赶紧去改了再发布一次,还是不行,其实这个真的没毛用。

    我在上面的3.1写了,echo $PATH,日志输出为: /sbin:/usr/sbin/bin/usr/bin 说明Jenkins只去这几个目录下找mvn命令,如果你在 /etc/profile 里配置了maven 但是却没有建立软连接到上面输出的这几个文件夹下,那命令是绝对找不到的。因为过去mvn命令后,Jenkins也会用到java命令,由于上述原因,java命令同样会报 "java : command not found",知道原因之后,去解决这个问题就简单了,我试过两种方法:

    第一种:修改Jenkins环境变量

    系统管理 --> 系统设置 --> 全局属性 --> 环境变量 --> 在Jenkins的PATH中添加java和maven

    键:PATH

    值:$PATH:/opt/jdk/bin:/opt/maven/bin

    第二种: 建立maven和java的软连接

# /opt/jdk/bin/java 实际目录
# /usr/bin/java 软连接目录
ln -s /opt/jdk/bin/java /usr/bin/java
ln -s /opt/maven/bin/mvn /usr/bin/mvn

    这样Jenkins在加载 /sbin:/usr/sbin/bin/usr/bin 下命令时就能找到相关命令

5.再次保存并且构建

    如果你还是成功的,那就跳过下面,如果连上远程服务器,执行命令时遇到下面的错:java command not found

    

    原因跟上面的一样 Jenkins 并没有在 /sbin:/usr/sbin/bin/usr/bin 找到 java 命令 ,两种解决办法:

    1.java命令给全路径

     java -jar xx.jar  改成  /opt/jdk/bin/java -jar xx.jar

    2.建立软连接

    这里是在充当服务器的机器上建立软连接

ln -s /opt/jdk/bin/java /usr/bin/java

   6.访问

       http://114.67.xxx.xx:9999/hello

       我的项目是 9999 端口,并且只有一个测试接口 /hello

       构建成功后,因为远程服务器上已经起来相关项目,端口已经被占用,因为是测试没做相关处理,如果再次构建,应该会端口冲突,请注意

猜你喜欢

转载自my.oschina.net/u/2937605/blog/1796366