Git+Jenkins学习之路(八)之发布maven项目及按版本发布

  • 一、什么是Maven

maven是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。

开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期

maven是属于Apache的开源项目

maven主要服务于java平台的构建、依赖管理、项目管理。

  • 二、手动安装MAVEN

(1)下载maven
[[email protected]-node2 ~]# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz

(2)解压
[[email protected]-node2 ~]# tar -zxvf apache-maven-3.5.2-bin.tar.gz #解压即可使用
[[email protected]-node2 ~]# mv apache-maven-3.5.2 /data/

(3)配置环境变量
[[email protected]-node2 bin]# export PATH=$PATH:/data/apache-maven-3.5.2/bin
[[email protected]-node2 bin]# vim /etc/profile
export PATH=$PATH:/data/apache-maven-3.5.2/bin

(4)测试
[[email protected]-node2 ~]# mvn -v

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /data/apache-maven-3.5.2
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.5.2.el7.x86_64", arch: "amd64", family: "unix"
  • 三、POM文件解析

POM是研发给出的

Project Object Model,项目对象模型

通过xml格式保存的pom.xml文件

作用类似ant的build.xml文件,功能更强大

该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。

  • 四、配置系统MAVEN

系统管理-->Global Tool Configuration

新增maven

取消自动安装

填写maven实际安装路径/data/apache-maven-3.5.2

  • 四、新建maven项目

(1)新建maven项目
(2)指定源码文职(git或svn)
(3)指定build选项
clean install
clean install -Dmaven.test.skip=true
(4)指定execute shell
java -jar target/testweb-0.0.1-SNAPSHOT.jar

配置maven:

settings.xml是maven的主要配置文件
位置$home/.m2是maven下载的插件的存储位置

(1)新建maven项目
新建一个项目,选择构建一个maven项目。如果此处没有“构建一个maven项目”的选项,需要安装插件:Maven Integration Plugin

(2)指定源码位置(git或svn)

(3)指定build选项
clean install
clean install -Dmaven.test.skip=true

(4)指定execute shell
java -jar target/testweb-0.0.1-SNAPSHOT.jar

(5)立即构建
这里在构建的过程中,可能会出现插件下载失败,需要更改maven的插件源,编辑/data/apache-maven-3.5.2/conf/settings.xml

立即构建完成,可以在/var/lib/jenkins/workspace/Java/下可以看到拉取的代码,我们找到整个项目的的jar包并执行,可以看到hello world

[[email protected] target]# java -jar testweb-0.0.1-SNAPSHOT.jar
Hello World! i am guo2
  • 五、将java的代码发布到linux-node1上

 (1)修改项目的Execte shell设置,再重新构建

rsync -raz --delete --progress target/testweb-0.0.1-SNAPSHOT.jar 192.168.56.11:/opt/
ssh [email protected]192.168.56.11 "java -jar /opt/testweb-0.0.1-SNAPSHOT.jar"

[[email protected] ~]# ll /opt/
total 8
drwxr-xr-x 10 root root 4096 Dec  9 17:08 gitlab
-rw-r--r--  1 root root 2663 Dec 22 14:16 testweb-0.0.1-SNAPSHOT.jar

[[email protected]-node1 ~]# java -jar /opt/testweb-0.0.1-SNAPSHOT.jar
Hello World! i am guo2

到此一个maven项目就完成了!

  •  六、maven项目按版本发布

(1)安装git parameter plugin插件

(2)任务配置中勾选<参数化构建>

(3)选择git parameter

(4)创建变量名 release(自定义)

(5)选择发布类型:
tag:按标签发布
branch:按分支发布
Revison:按修订发布

(1)安装git parameter plugin插件

修改pom.xml中的版本改为v1.0

[[email protected]node2 testing]# vim pom.xml 

<version>v1.0</version>

[[email protected]-node2 testing]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   pom.xml
#
no changes added to commit (use "git add" and/or "git commit -a")
[[email protected]-node2 testing]# git add .
[[email protected]-node2 testing]# git commit -m "v1.0"
[master eed5815] v1.0
 1 file changed, 1 insertion(+), 1 deletion(-)
[[email protected]-node2 testing]# git push origin master
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 281 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To [email protected]192.168.56.11:java/Java.git
   37d2bd1..eed5815  master -> master

给Java项目中的版本修改后打上标签

此时我们再修改

[[email protected] testing]# vim src/main/java/com/ghz/testweb/App.java
package com.ghz.testweb;

/**
 * Hello world!
 *
 */
public class App
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World! i am guo2 v1.0" );
    }
}
[[email protected]-node2 testing]# git add .
[[email protected]-node2 testing]# git commit -m "featrue1"
[master 6402300] featrue1
 1 file changed, 1 insertion(+), 1 deletion(-)
[[email protected]-node2 testing]# git push origin master
Counting objects: 17, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (9/9), 565 bytes | 0 bytes/s, done.
Total 9 (delta 2), reused 0 (delta 0)
To [email protected]192.168.56.11:java/Java.git
   eed5815..6402300  master -> master

此时进行构建,由于版本修改了,会报错:

但是我们每次进行版本的修改后如果都去修改excute shell就显得太麻烦

(2)任务配置中勾选<参数化构建>

(3)选择git parameter

(4)创建变量名 release(自定义)

 

修改源码管理

(5)选择发布类型:
tag:按标签发布

(6)对代码进行多次修改,并提交

然后再代码库中对提交进行tag标记

再在jenkins中查看,即可按照不同的版本进行构建,如图:

原文地址:https://www.cnblogs.com/linuxk/p/9453884.html

时间: 2024-11-02 23:31:28

Git+Jenkins学习之路(八)之发布maven项目及按版本发布的相关文章

配置Elipse发布Maven项目到Tomcat

配置Elipse发布Maven项目到Tomcat——转载: maven项目创建成功后,本来已经添加了jar的依赖,但是发布到Tomcat中就是没有jar包存在, 启动Tomcat总是报没有找到jar包,可项目结构中确实已经有jar了,一直很郁闷,所以记录下来. 1.首先确定好我们已经安装好maven需要的环境,并且已经创建好一个Maven依赖的Web项目,可以查看前几篇maven的学习内容搭建maven项目     一个完整的maven依赖的web项目 大家看,我这里只依赖了oracle的驱动包

Tomcat发布Maven项目遇到的种种异常(转:http://blog.csdn.net/zhang6622056/article/details/9772951)

前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 1.RUN参数的配置 2.关于WEB.XML不发布的解决方案 3.MAVEN依赖的JAR包不发布的解决方案 4.经历说明 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1. 在MAVEN_HOME/bin/mvn.bat文件加入一句话: 搜索@REM set MAVEN_OPTS= 在它下面加入一句话:set MAVEN_OPTS= -Xms128m

开发环境eclipse、myEclipse本地tomcat调试发布maven项目遇到的糟心事

之前一直用myEclipse开发Web Project项目,通过myEclipse本地部署tomcat还算顺利,但是有个问题,myEclipse中Java Compiler只支持到1.7,但是spring boot要求至少是jdk1.8,所以放弃了myEclipse转为eclipse,至于idea后面再说吧.这里先说一下开发环境eclipse.myEclipse本地tomcat调试发布maven项目遇到的糟心事. (1)myEclipse部署maven项目到tomcat上识别不了项目,无法部署

jenkins按版本发布maven项目

1.先为java这个项目创建三个版本 vim pom.xml vim src/main/java/com/ghz/testweb/App.java git add . git commit -m "second" git tag -a v1.2 -m 'version 1.2' git push -u origin master git push origin v1.2 修改后的pom.xml 修改war的输出内容 v1.3标签是一样的道理 vim pom.xml vim src/ma

MyEclipse使用总结——Maven项目如何启动运行发布到tomcat中[转]

前面两篇文章: 新建maven框架的web项目 以及 将原有项目改成maven框架 之后,我们已经有了maven的项目 那么 maven项目到底怎么启动呢 如果我们直接在myeclipse中按以前的启动方法是不行的.(详情下一篇文章会讲到:在myeclipse中启动maven项目) 但是maven项目可以生成本地war包手动移到tomcat,也可以自动发布到本地,远程tomcat中. 所以 我们就先尝试这两种方式: 生成war包,手动运行 对着项目右键,run as -----> Maven i

tomcat没有发布maven项目依赖的本地jar包

开发工具:STS(Spring Tool Suite) 建立springMVC的maven项目,平时使用的jar包都是在pom.xml文件配置依赖关系, maven会自动从仓库中下载,这样使用tomcat部署发布都没有问题.但有时我们需要使用maven仓库中不存在的包,这就需要自己配置. 右键单击工程名—>Build Path—>Configure Build Path—>Java Build Path—>Add JARs/Add External JARs,将需要的jar包加进去

【python3的学习之路八】高级特性

切片 举出一个list的例子 L = list(range(100)) 如何取前三个元素? L[0:3] # 从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素. L[:3] #如果第一个索引是0,还可以省略 其他情况 L[-10:] # 后10个元素 L[:10:2] # 前10个数,每俩个取一个 L[::5] # 所有数,每5个取一个 L[:] # 不变 截取一部分的字符串并与其他字符串拼接 var1 = 'Hello World!' print ("拼接字符串

vue学习之路一:安装vue-element-admin项目

今天看到一个vue网站,觉得很好,立马又有学习vue的冲动了,话不多说,直接贴项目网址: https://github.com/PanJiaChen/vue-element-admin/blob/master/README.zh-CN.md 根据文档,第一步就是安装项目啦! # 克隆项目 git clone https://github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖 npm in

Eclipse+maven发布ee项目jar包未发布

背景:在Eclipse中搭建好EE环境后,发布时,出现ClassNotFoundException: XX.XX.ConfigureListener,查看时,对应的jar包都引入了,项目没也没出错,但查看tomcat下时,lib是空的. 1.右键点击项目,选择"Properties" --> "Deployment Assembly" --> "Add" -->  "Java Build Path Entries&qu