1. 部署Maven项目

1.1 新建项目

  选择新建任务

  输入任务名称,并选择构建一个Maven项目。如果你的页面没有看到“构建一个maven项目”,则需要安装Maven Integration插件。

  填写项目描述

  填写源码管理,我选择的是git库,Repository URL是代码的地址,Credentials是用户名密码。指定分支是git的分支名。

  如果是新环境,这里可能会报错:remote: HTTP Basic: Access denied    是因为Credentials没有设置或错误。

  设置构建结果

1.2 配置Maven编译命令

  在Build栏,Root POM输入的是pom.xml,读取的是Maven项目的根pom.xml

  Goals and options是maven项目的执行脚本:clean install -pl com.zh.test:my-api -am -U -Dmaven.test.skip=true  -Dmaven.repo.local=/usr/local/maven-3.3.9/repository

  参数说明:这里填写的命令不需要写mvn开头

  clean:清除编译后的目录,默认是target目录

  install:对项目进行编译

  -pl:指定要编译的子项目,而不是编译全部项目,在maven项目有很多子模块,尤其是2层级以上的项目,可以使用这个参数,只编译需要的子模块,减少编译时间。

  com.zh.test:my-api:这是就是我的测试项目,com.zh.test是整个项目的groupId,my-api是要编译的子模块的artifactId

  -am:表示同时处理选定模块所依赖的模块

  -U:强制更新

   -Dmaven.test.skip=true:不执行测试用例,也不编译测试用例类

  -Dmaven.repo.local=/usr/local/maven-3.3.9/repository   指定jenkins服务器上的maven的repository地址。虽然在系统配置时设置环境变量,但部署新项目时maven还是默认执行一遍依赖下载的,配置这个可以节省很多编译时间。

1.3 发布步骤

  这里填写的发布项目的步骤了。

  选中“Run only if build succeeds”,只有maven编译成功之后才会执行这个配置。

  SSH Server:选择在系统配置里配置好的SSH Server

  Source files:源文件地址,指的是项目编译后的存放地址。位置路径:JENKINS_HOME/workspace/jenkins任务名称/项目路径。

    举例:我的文件目录是 /data/jenkins/workspace/jenkins_test/api-server/my-api,在这个目录下获得拿到编译好的jar包或war包   (/data/jenkins是我设置的JENKINS_HOME的环境变量;workspace是固定的目录,不会变;jenkins_test是我这次演示的jenkins任务名;api-server/my-api是项目路径,因为my-api是第三级的子模块,上级是api-server,所以生成的路径是api-server/my-api )

  Remove prefix:为了拿到jar包,需要删除的路径。

  Remote directory:远程目录。在系统设置的SSH Server时也配置了一个Remote Directory,这里设置的Remote Directory是要拼接到SSH Server的Remote Directory后面,如果是空可以填写/

  Exec command:在远程服务器执行的shell脚本,可直接在这里也,执行远程服务器的sh脚本地址。项目多的话最好使用sh文件启动。

 
2.  优化设置

2.1 丢弃旧的构建

  Jenkins是默认保留历史构建记录的,如果你的项目比较多,项目更新构建比较频繁,很容易造成硬盘空间不足的显现。

  所以Jenkins提供了“丢弃旧的构建”让大家自由配置,保持构建的天数、保持构建的最大个数大家可以按自己需要填写,如果不填的话,默认值最大值。天数是365。

 2.2 构建触发器

  这里可以按照需要设置定时构建任务,我这里设置的是每天中午11点构建。点击后面的?符号可以插查看此命令的说明。

 2.3 构建环境

  这些参数可以自己翻译一下,作用一目了然。作用这个大家自行摸索吧

 3. 问题

 3.1 在启动多级maven项目是,会报错:SSH: Current build result is [NOT_BUILT], not going to run. 

  解决办法是安装插件:fail-the-build

  地址:https://plugins.jenkins.io/fail-the-build-plugin/

Jenkins总结2-部署maven项目的更多相关文章

  1. Intellij 部署maven项目

    一 部署Maven项目 1.下载和配置 (1)下载:maven.apache.org,点击download,下载apache-maven-3.3.9-bin.zip (2)配置环境变量: 环境变量包括 ...

  2. 部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】

    部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi ...

  3. Jenkins+harbor+gitlab+k8s 部署maven项目

    一.概述 maven项目部署流程图如下: 环境介绍 操作系统 ip 角色 版本 ubuntu-16.04.4-server-amd64 192.168.10.122 Jenkins+harbor Je ...

  4. Jenkins部署maven项目到远端服务器

    jenkins服务器地址:192.168.1.203 项目部署机器地址:192.168.1.201,192.168.1.200 代码托管github 虽然比较low,但是入门是可以的! Jenkins ...

  5. jenkins介绍及部署tomcat环境、部署Maven项目及密码忘记修改

    安装配置jenkins: jenkins安装方式一:war包 1.先安装tomcat将jenkins,war直接放到webapps目录下 2.通过java-jar jenkins.war --http ...

  6. Jenkins构建部署Maven项目

    1 创建新项目 2 构建maven项目 3 配置 3.1  源代码管理 svn 用户名,密码 4 配置maven打包 配置SSH 保存之后 立即构建 执行成功

  7. 使用Jenkins可持续集成maven项目

    首先下载最新的Jenkins的war包,放在tomcat的webapps的目录下,然后运行,例如: http://121.42.62.45:8080/jenkins/ 然后按照一步步的提示,下载相关的 ...

  8. 【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目

    一.持续集成 1.1 什么是持续集成? continuous integration (CI),持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员,每天至少集成一次,也就意味着 ...

  9. 配置Jenkins 实现自动发布maven项目至weblogic(svn+maven+weblogic12c)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...

随机推荐

  1. tabBar配置和修改

    1.tabBar(底部导航栏) 属性 默认值 描述 平台支持 color   tab上未被选中时文字的颜色   selectedColor   tab上被选中时文字的颜色   backgroundCo ...

  2. Linux系统 Centos7 环境基于Docker部署Rocketmq服务

    消息队列 基本概述 MQ,Message Queue,基于TCP协议构建的简单协议,区别于具体的通信协议. 基于通信协议定义和抽象的更高层次的通信模型,一般都是生产者和消费者模型,又或者说服务端和客户 ...

  3. C#几种单例模式

    /** * 单例模式-饿汉式 */ public class Singleton { // 在定义的时候就初始化_instance, private static Singleton _instanc ...

  4. 准备开始了解orchardcore,有兴趣的一起啊

    orchardcore网上的资料真是少,开始看源码,目前遇到的最大问题是不知道ModuleName属性如何自动注入到OrchardCore.Cms.Web的程序集Assembly上面,等这个搞通了估计 ...

  5. JavaWeb基础(day11)

    HTML HTML是超文本标记语言.HTML就 是普通的文本文件,只不过在文本中的内容如果被一些 特殊的标签进行包裹就有了特殊的含义,这些被那些标签标记文本,就成了超文本. 网页的组成 网页的组成 H ...

  6. flask 源码专题(五):SqlAlchemy 中操作数据库时session和scoped_session的区别

    1原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalc ...

  7. Python之堡垒机

    本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...

  8. Python 实现邮件发送功能(进阶)

    上篇文章已经介绍了利用Python发送文本消息的用法,也在文末遗留了如何发送图片和附件的问题,本章主要来回答这两个问题.   本章主要包含知识点: 1. 如何将图片放到邮件主体中发送 2. 如何发送附 ...

  9. scrapyd+gerapy的项目部署

    scrapyd+gerapy的项目部署: 简单学习,后续跟进完善 声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 环境配置: scrapyd下载: pip ins ...

  10. layui 魔改:上传时的真实进度条

    这个问题本身不复杂,难点在于需要改 layui 的源码. HTML略. 网页的JS域: layui.use(['upload','element','layer'], function(){ var ...