一、maven本地配置

1、修改apache-maven-3.6.1\conf\settings.xml文件,把仓库配置成本地仓库

<localRepository>D:\apache-maven-3.6.1\repository</localRepository> 

2、在apache-maven-3.6.1\conf\settings.xml.文件添加获取jar包的地址

<mirror> 

   <id>proxied-releases</id>

   <name>Release Mirror</name>

   <url>https://www.test.test/nexus/content/groups/public/</url>

   <mirrorOf>central</mirrorOf>   

</mirror> 

id、name随意添加,不影响

url 值为公司maven私服地址或 阿里maven 地址

二、maven的Jenkins配置

1、打开Jenkins设置全局工具设置,配置如下,文件路径为本地 maven setting.xml 文件路径

Name 为maven版本,MAVEN_HOME 为maven安装路径

三、Jenkins项目任务配置

1、构建配置

Root POM:拉取项目代码的 pom.xml 文件

Goals and options:构建所使用的命令

命令解析:clean -PQA -DskipTests package  install:清除旧项目后使用配置文件中的QA配置进行打包target下的jar安装到本地仓库

clean:clean有两种

maven clean:maven clean是maven的一个清洁生命周期,目的是删除build目录下的构建输出,体现在文件系统上是删除了Target目录所有文件,包括该目录

project clean:project clean是IDE对已经生成的class文件的删除操作,体现在文件系统上是只删除了Target目录中classes文件夹中所有内容

mvn package -Pqa -DskipTests

package :基本命令,进行打包

-Pqa:项目开发需要有多个环境,一般为开发,测试,预发布,正式4个环境,通过maven可以实现按不同环境进行打包部署。也就是dev(开发)、qa(测试)、pre(预发)、生产正式(prod)四个环境,对应的都有各自的配置文件properties。

通过 -P 传入环境id参数就可以选择环境,比如传入 qa,即命令 -Pqa 。会得到 qa.peroperties 配置文件,这是因为在 pom.xml 文件中有这样的配置

 <profiles>

        <!-- 默认 -->

        <profile>

            <id>dev</id>

            <properties>

                <profile.active>dev</profile.active>

            </properties>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

        </profile>

        <!-- 质检 -->

        <profile>

            <id>QA</id>

            <properties>

                <profile.active>QA</profile.active>

            </properties>

        </profile>

        <!-- 生产 -->

        <profile>

            <id>pro</id>

            <properties>

                <profile.active>pro</profile.active>

            </properties>

        </profile>

    </profiles>
<build>

    <filters>

           <filter>src/main/resources/env/${env}.properties</filter>

       </filters>

       <resources>  

          <resource>  

              <directory>src/main/resources/</directory>  

              <filtering>true</filtering>  

              <includes>  

                  <include>**/*.properties</include>  

              </includes>  

          </resource> 

       </resources>

 ....

 </build>

其中${env}.properties就是让我们传入环境参数qa、dev、prod、pre。

- DskipTests:跳过测试,否则打包过程很慢

2、压缩命令

Run only if build succeeds:项目构建成功才运行脚本

cd /d F:\Jenkins\workspace\dcpay_platform_support\target

E:\WinRAR\WinRAR.exe a -ibck dcpay_platform_support.zip dcpay_platform_support.war

脚本代码解析:进入项目下的 target 目录,把打包后的项目 war 包压缩成 .zip 格式

3、上传压缩包到服务器配置

1)下载 Publish Over SSH 插件

2)在Jenkins系统设置里添加服务器

Name:名称

Hostname:服务器SSH地址

Username:连接服务器用户名

Remote Directectory:上到服务器的目录

Passphrase / Password:服务器密码

Port:服务器端口号

Timeout:连接超时时间

3)项目任务中配置

Name:服务器名称(上一步在Jenkins系统设置里添加的服务器)

Source files:要上传的文件路径(默认是从当前项目任务目录下的路径,也就是 F:\Jenkins\workspace\dcpay_stat_center\target\dcpay_platform_support.zip)

Remove prefix:要删除的文件路径名称前缀,Source files 为 target/dcpay_platform_support.zip,也就是说要删除 target,只上传 dcpay_platform_support.zip 到服务器

Remote directory:要上传到的服务器目录,上一步中设置为 /home/deploy/ 加上 jenkins,就是说上传 dcpay_platform_support.zip 到服务器的 /home/deploy/jenkins 目录下

4、在远程服务器执行 shell 代码

1)下载 SSH plugin 插件

2)添加Jenkins全局凭证

用户名:服务器用户名

密码:服务器密码

3)到Jenkins系统设置里添加服务器

Credentials:上一步添加的服务器用户名,也可以在这重新添加服务器

4)远程服务器配置、执行脚本代码解析

SSH site:上一步配置的服务器

Command:要执行的 shell 代码

jenkins远程执行shell命令必须要声明环境变量

停止服务 ——> 删除旧包 ——> 拷贝新包 ——> 启动新包

Execute each line:执行每一行命令,不要勾选,会导致设置java环境变量报错

Hide command from console output:在jenkins控制台输出远程执行的命令结果

jenkins打包java maven项目的更多相关文章

  1. 【IDEA使用技巧】(4) —— IDEA 构建Java Maven项目、导入Eclipse项目、多Module Maven项目

    1.IntelliJ IDEA构建Java Maven项目 1.1. IDEA构建Java Maven项目 ①选择Create New Project,选择创建Maven项目,并勾选Create fr ...

  2. Java Maven项目之Nexus私服搭建和版本管理应用

    转载自:https://cloud.tencent.com/developer/article/1010603 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓 ...

  3. jenkins打包java项目缺少jar包问题解决

    java项目在使用jenkins打包时个别jar包可能会没有下载到本地,这时候就要用命令行本地安装一下 打包时基础jar包报错如图: 黑框里依次为: 组ID:-DgroupId=com.azazar ...

  4. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...

  5. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  6. Jenkins 打包 java项目时 丢失 配置文件(resource)

    使用IDEA开发的spring boot 项目在本地打包运行可以,但是利用Jenkins打包运行提示读取不到配置文件中的变量,打开jar包发现里面没有配置文件.解决方法是在pom中增加如下配置 < ...

  7. idea打包springboot+maven项目并发布在linux上

    2018年11月13日我亲测有效的,很简单的,借鉴博客:https://blog.csdn.net/smilecall/article/details/56288972 第一步:随便建一个maven类 ...

  8. jenkins构建一个maven项目[五]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 构建一个maven项目,即为构建java项目.模拟实验之前先把实验代码推送到 ...

  9. 使用jenkins构建一个maven项目

    1.登陆到jenkins首页,创建项目-->选择maven-->输入项目名称-->选择项目类型 2.进入项目配置:{先写一下项目描述和设置下保留的历史构建,然后向下拉} 找到源吗管理 ...

随机推荐

  1. C#算法设计之知识储备

    前言 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/669 访问. 算法的讨论具有一定的规则,其中也包含一些不成文的约定 ...

  2. 代码优化与sql优化---未完待续

    万丈高楼平地起,还是得打一个好地基呀 减少对变量对重复计算 //一般这么写 for (int i = ; i < list.size(); i++) {...} //建议修改为: for (in ...

  3. 《MySQL必知必会》简介、使用

    2.MySQL简介 2.1 什么是MySQL 我们在前一-章中介绍了数据库和SQL.正如所述,数据的所有存储. 检索.管理和处理实际上是由数据库软件一 DBMS (数据库管理系统) 完成的. MySQ ...

  4. MIT 6.828 | JOS | 关于虚拟空间和物理空间的总结

    Question: 做lab过程中越来越迷糊,为什么一会儿虚拟地址是4G 物理地址也是4G ,那这有什么作用呢? 解决途径: 停下来,根据当前lab的进展,再回头看上学期操作系统的ppt & ...

  5. 使用Postman工具做接口测试(五)——生成随机参数

    引言 我们平时使用最多的接口调试工具就是postman了,比如开发将一个接口给到你,你想看看接口是否正常.最常用的方法就是用postman去调一下.如果通,就写接口测试用例,反之,将开发打一顿吧o(* ...

  6. ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解

    前言 本文主要介绍的是ELK日志系统中的Filebeat快速入门教程. ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...

  7. java泛型笔记

    目录 概述 什么是泛型?为什么使用泛型? 例子 特性 使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法的基本用法 泛型方法与可变参数 静态方法与泛型 泛型 ...

  8. Oracle和Mysql分页的区别

    一.Mysql使用limit分页 select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSize PS: (1)第一个参 ...

  9. linux驱动之内核多线程(一)

    本文摘自http://www.cnblogs.com/zhuyp1015/archive/2012/06/11/2545624.html Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进 ...

  10. Storm与SparkStreaming对比

    Storm与SparkStreaming对比 ◆ Spark Streaming 批处理的性能比Storm高出几十倍.◆ Streaming采用小批量模式,Storm是一条消息一条消息的计算.◆ St ...