Maven

1.安装maven

Maven是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。
开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期。
Apache的开源项目主要服务于Java平台的构建、依赖管理、项目管理。
Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。该文件用于管理:源代码、配文
件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。该文件是由开发维护,我们运维人员可以不用去关心。
mvn package #会去maven的中央仓库去下载需要的依赖包和插件到.m2目录下

官网:             http://maven.apache.org/download.cgi
清华镜像:        https://mirrors.tuna.tsinghua.edu.cn/apache/maven/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
rpm -ivh jdk-8u251-linux-x64.rpm 
tar xf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
 ln -s /usr/local/maven-3.3.9 /usr/local/maven
cat /etc/profile.d/maven.sh 
export PATH=/usr/local/maven/bin/:$PATH
source /etc/profile.d/maven.sh
mvn -v 查看版本

2.编译测试

#上传一个简单的java项目包hello‐world.tar.gz进行解压
tar xf hello-world.tar.gz 
cd hello-world/
validate(验证):     验证项目正确,并且所有必要信息可用。
compile(编译):    编译项目源码
test(测试):         使用合适的单元测试框架测试编译后的源码。
package(打包):     源码编译之后,使用合适的格式(例如JAR格式)对编译后的源码进行打包。
integration‐test(集成测试): 如果有需要,把包处理并部署到可以运行集成测试的环境中去。
verify(验证):     进行各种测试来验证包是否有效并且符合质量标准。
install(安装):     把包安装到本地仓库,使该包可以作为其他本地项目的依赖。
deploy(部署):     在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。
mvn clean (清除) : 清除上次编译的结果
#测试
[root@jenkins hello-world]# mvn test
#打包
[root@jenkins hello-world]# mvn package    #会去maven的中央仓库去下载需要的依赖包和插件到.m2目录下
#打包结果
[root@jenkins hello-world]# ll target/
total 8
drwxr-xr-x 3 root root   17 12月 24 16:17 classes
-rw-r--r-- 1 root root 3132 12月 24 16:21 hello-world-1.0-SNAPSHOT.jar
drwxr-xr-x 2 root root   28 12月 24 16:21 maven-archiver
drwxr-xr-x 3 root root   35 12月 24 16:17 maven-status
-rw-r--r-- 1 root root 2874 12月 24 16:21 original-hello-world-1.0-SNAPSHOT.jar
drwxr-xr-x 2 root root  125 12月 24 16:17 surefire-reports
drwxr-xr-x 3 root root   17 12月 24 16:17 test-classes

3.maven使用阿里云

vim /usr/local/maven/conf/settings.xml    </mirror>模块前插入
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
 </mirror>
mvn package  测试看到比之前的快

4.maven使用私服

https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3
wget https://download.sonatype.com/nexus/3/nexus-3.13.0-01-unix.tar.gz
rpm -ivh jdk-8u251-linux-x64.rpm 
tar xf nexus-3.13.0-01-unix.tar.gz -C /usr/local/
ln -s  /usr/local/nexus-3.13.0-01/  /usr/local/nexus
/usr/local/nexus/bin/nexus start 启动
ss -lntup|grep :8081
http://192.168.122.104:8081 admin admin123
私服拉取换成阿里.png
vim /usr/local/maven/setting.xml  插入在</servers>前面
 <servers>
    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

vim /usr/local/maven/conf/settings.xml    </mirror>模块前插入
<mirror>
      <id>nexus</id>
      <name>aliyun maven</name>
      <url>http://192.168.122.104:8081/repository/maven-central/</url>
      <mirrorOf>*</mirrorOf>        
 </mirror>

vim /usr/local/maven/conf/settings.xml     </profiles>模块前插入
  <profile>
      <id>nexusTest</id>
      <repositories>
        <repository>
          <id>local-nexus</id>
          <url>http://192.168.122.104:8081/repository/maven-central/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>

vim /usr/local/maven/conf/settings.xml     </settings>模块前插入
<activeProfiles>
 <activeProfile>nexusTest</activeProfile>
  </activeProfiles>
图片.png
java打包
cd  hello-world
mvn clean
mvn package  第一次很慢 以后会很快
INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.458 s
[INFO] Finished at: 2020-12-28T11:45:44+08:00
[INFO] Final Memory: 17M/185M
java项目
https://gitee.com/zchuanzhao/jeesns.git
jenkins配置
使用脚本推送到tomcat上
java.png

maven.png

图片.png

图片.png

5.上线java程序

Hello World
图片.png

图片.png

图片.png
[root@jenkins hello-world-war]# cat /scripts/java_devops_tag_rollback.sh
#/bin/bash
##WORKSPACE是jenkins内置变量打印当前项目目录
Code_Dir=$WORKSPACE
Web_Dir=/soft/code/apache-tomcat-9.0.41/webapps
Web_IP="192.168.122.106"
Date=`date +%F-%H-%M-%S`
Time=$Date-${git_version}

get_code(){
cd $Code_Dir 
}

scp_web_server(){
for Ip in $Web_IP
do
scp target/*.war $Ip:$Web_Dir/ROOT-$Time.war
ssh root@$Ip "cd $Web_Dir && rm -rf ROOT &&ln -s ./ROOT-$Time ROOT"
ssh root@$Ip "cd $Web_Dir && ../bin/catalina.sh stop && ../bin/catalina.sh start"
done
}
deploy(){
     get_code
     scp_web_server 
}
rollback() {
for Ip in $Web_IP
do
back_file=`ssh root@$Ip "cd $Web_Dir && find ./ -maxdepth 1 -type d -name "ROOT-*-${git_version}""`
ssh root@$Ip "cd $Web_Dir && rm -rf ROOT &&ln -s $back_file ROOT"
ssh root@$Ip "cd $Web_Dir && ../bin/catalina.sh stop && ../bin/catalina.sh start"
done
}
###GIT_COMMIT GIT_PREVIOUS_SUCCESSFUL_COMMIT 成功的hash
if [ ${GIT_COMMIT} ==  ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
    echo "你已经部署过此版本 ${git_version}"
    rollback
else
    deploy
 fi
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Maven基础 1.通过修改settings.xml文件,可以为maven添加镜像加速服务,也可以修改默认的本地仓...
    裂开的汤圆阅读 150评论 0 0
  • 一、Maven简介 1. 什么是Maven Apache Maven是一个软件项目管理和构建工具,可以帮助我们创建...
    青年心路阅读 626评论 0 0
  • 1.maven的作用 参考地址:http://maven.apache.org/index.html Apache...
    Mrsunup阅读 274评论 0 0
  • 下载bin安装包,解压,配置环境变量mvn命令: 声明:以下笔记的内容大部分来自于尚硅谷的maven视频课程,花了...
    dravenxiaokai阅读 347评论 1 1
  • Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来管理java项目,进...
    千_锋小小千阅读 321评论 0 0