创建Maven项目

创建Maven项目

简介

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

1、下载Maven 3安装包

官网:http://maven.apache.org/download.cgi
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/

2、安装Maven

[root@genkins ~] # ll
-rw-r--r-- 1 root root   8491533 May  6 15:54 apache-maven-3.3.9-bin.tar.gz
[root@genkins ~] # tar xf apache-maven-3.3.9-bin.tar.gz
[root@genkins ~] # mv apache-maven-3.3.9 /usr/local/maven
[root@genkins ~] # ln -s /usr/local/apache-maven-3.3.9/ /usr/local/maven
[root@genkins ~] # /usr/local/maven/bin/mvn --version
[root@genkins ~] # cd hello-world-war/
[root@genkins hello-world-war] # tree .
.
├── dist
│   └── hello-world.war
├── pom.xml
├── README.md
└── src
    └── main
        └── webapp
            ├── index.jsp
            └── WEB-INF
                └── web.xml


[root@genkins hello-world-war] # mvn package      #会去maven的中央仓库去下载需要的依赖包和插件到.m2目录下

3、编辑/etc/profile文件,在末尾添加

[root@genkins ~] # vim /etc/profile
export PATH="$PATH:/usr/local/sonar-scanner/bin:/usr/local/maven/bin:"
[root@genkins ~] # source /etc/profile
[root@genkins ~] # mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_221, vendor: Oracle Corporation
Java home: /app/jdk1.8.0_221/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"



进入目录执行打包命令
validate(验证): 验证项目正确,并且所有必要信息可用。
compile(编译): 编译项目源码
test(测试): 使用合适的单元测试框架测试编译后的源码。
package(打包): 源码编译之后,使用合适的格式(例如JAR格式)对编译后的源码进行打包。
integration-test(集成测试): 如果有需要,把包处理并部署到可以运行集成测试的环境中去。
verify(验证): 进行各种测试来验证包是否有效并且符合质量标准。
install(安装): 把包安装到本地仓库,使该包可以作为其他本地项目的依赖。
deploy(部署): 在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。
mvn clean (清除) : 清除上次编译的结果
mvn package -Dmaven.test.skip=true 跳过测试用例
在这里插入图片描述

1 打包

[root@genkins hello-world-war] # mvn package

2 清除

[root@genkins hello-world-war] # mvn clean

3 加速打包

[root@genkins hello-world-war] # cd /usr/local/maven/conf/
[root@genkins conf] # vim settings.xml
在158行后面
<mirror> 
<id>nexus-aliyun</id> 
<mirrorOf>*</mirrorOf> 
<name>Nexus aliyun</name> 
<url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>
[root@genkins conf] # cd -
[root@genkins hello-world-war] # mvn package
[root@genkins hello-world-war] # mvn clean

4 报错处理

[root@genkins hello-world-war] # rm -rf /root/.m2
[root@genkins hello-world-war] # mvn package

创建一个项目
在这里插入图片描述

推送远程仓库

[root@gitlab ~] # ll
-rw-r--r--  1 root root     18945 May  6 16:47 hello-world-war.tar.gz
[root@gitlab ~] # tar xf hello-world-war.tar.gz 
[root@gitlab ~] # cd hello-world-war/
[root@gitlab hello-world-war] # git remote remove origin 
[root@gitlab hello-world-war] # git remote 
[root@gitlab hello-world-war] # git remote add origin git@10.0.0.200:oldboy/java.git
[root@gitlab hello-world-war] # git push  -u origin master 
PS 在Jenkins也是可以推送的,但是由于分支保护的原因,就在主节点上推送了.

推送成功的显示结果
在这里插入图片描述
登陆10.0.0.201Jenkins网站
创建一个项目
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
写完之后返回到配置页面 刷新 把信息再次填好,最后保存
在这里插入图片描述

[root@genkins hello-world-war] # ll /var/lib/jenkins/workspace/
total 12
drwxr-xr-x  9 root root 4096 Apr 30 11:03 my-deploy-rollback
drwxr-xr-x  2 root root    6 Apr 29 23:58 my-deploy-roolback
drwxr-xr-x 10 root root 4096 Apr 30 18:32 my-freestyle-job
drwxr-xr-x  6 root root  105 May  6 17:52 my-maven-job    #多了这个文件
drwxr-xr-x  9 root root 4096 Apr 30 10:59 tag-job

在web服务器上安装tomcat

web01安装tomcat
[root@web01 ~] # rpm -ivh jdk-8u181-linux-x64.rpm 
[root@web01 ~] # tar xf apache-tomcat-8.0.27.tar.gz 
[root@web01 ~] # mv apache-tomcat-8.0.27 /usr/local/tomcat
[root@web01 ~] # vim /usr/java/jdk1.8.0_181-amd64/jre/lib/security/java.security 
在117行: securerandom.source=file:/dev/urandom
[root@web01 ~] # /usr/local/tomcat/bin/startup.sh
网页访问 10.0.0.7:8080 出现tomcat

结果出现tomcat页面

[root@genkins hello-world-war] # cd /server/scripts/
[root@genkins scripts] # cat  java.sh
#!/bin/bash
DATE=$(date +%Y-%m-%d-%H-%M-%S)
CODE_DIR="/var/lib/jenkins/workspace/my-maven-job"
WEB_DIR="/usr/local/tomcat/webapps"
get_code_scp(){
        ssh 10.0.0.7 "cd $WEB_DIR && mkdir java-${git_version}"
        cd $CODE_DIR && scp jesns-web/target/*.war 10.0.0.7:$WEB_DIR/java-${git_version}
}


code_tarxf(){
        ssh 10.0.0.7 "cd $WEB_DIR/java-${git_version} &&  unzip *.war && rm -rf *.war"

}
ln_html(){
         ssh 10.0.0.7 "cd $WEB_DIR/  && rm -rf ROOT && ln -s  java-${git_version} ROOT  && /usr
/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh"
}

main(){

        get_code_scp;
        code_tarxf;
        ln_html;
}
if [ "$deploy_env" == "deploy" ];then
        if [ "$GIT_COMMIT" == "$GIT_PREVIOUS_SUCCESSFUL_COMMIT" ];then
            echo "构建失败该 $git_version 版本号已部署"
        else
        main
        fi
elif [ "$deploy_env" == "rollback" ];then
        ln_html
fi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ssh 10.0.0.7 "rm -rf /usr/local/tomcat/webapps/ROOT/*"   
scp target/hello-world-war-1.0.0.war 10.0.0.7:/usr/local/tomcat/webapps/ROOT/
ssh 10.0.0.7 "cd /usr/local/tomcat/webapps/ROOT/ && unzip hello-world-war-1.0.0.war"
ssh 10.0.0.7 "/usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh"

在这里插入图片描述
最后在web01出现的界面
在这里插入图片描述

[root@gitlab hello-world-war] # vim src/main/webapp/index.jsp 
<html>
<head>
<title>Hello World!</title>
</head>
<body>
        <h1>Hello World! v5.0</h1>       #改为5.0版本
        <p>
                It is now
                <%= new java.util.Date() %></p>
        <p>
                You are coming from
                <%= request.getRemoteAddr()  %></p>
</body>

[root@gitlab hello-world-war] # git add .
[root@gitlab hello-world-war] # git commit -m "v5.0"
[root@gitlab hello-world-war] # git push -u origin master 

最后到Jenkins进行构建
网页看到显示5.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值