1.简介:什么是Maven

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

开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期;主要服务于JAVA平台的构建、依赖管理、项目管理.

wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar xf apache-maven-3.3.9-bin.tar.gz
# 配置环境变量
vim /etc/profile
export PATH=$PATH:/data/apache-maven-3.3.9/bin

mvn -v 查看maven、java的所有信息

这张图说明了jdk的路径

到全局工具中配置jdk路径

到全局工具中配置maven路径

2.什么是POM、常用MAVEN命令

Project Object Model,项目对象模型,通过xml格式保存的pom.xml文件,作用类似ant的build.xml文件,功能更强大.

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

a.创建Maven的普通java项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
b.创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
c.清除后再编译
mvn clean install settings.xml 是maven的主要配置文件;
位置:$home/.m2用户仓库,$home就是/var/lib/jenkins用户存储库;

3.gitlab上创建java库

# 在gitlab上创建一个项目--java,根据下面的命令行指令,在jenkins服务器上进行操作
# 地址:git@10.0.0.26:Linkdood-yw/java.git
git config --global user.name "root"
git config --global user.email "test@163.com"
cd /home
git clone git@10.0.0.26:Linkdood-yw/java.git
cd /home/java
git remote -v
origin git@10.0.0.26:Linkdood-yw/java.git (fetch)
origin git@10.0.0.26:Linkdood-yw/java.git (push)
# 这里的java2目录下的文件来自老男孩架构师班14期视频内容,给他打一波广告
cp -arf /root/java2/* .
git add .
git commit -m "commit pom.xml"
git push -u origin master

4.新建maven项目

a.新建maven项目

如果此处没有"构建一个maven项目"的选项,需要安装插件:Maven Integration

b.指定源码位置

c.指定build选项

d.立即构建

构建的过程中,可能会出现插件下载失败,需要更改maven的插件源,编辑/data/apache-maven-3.3.9/conf/settings.xml

我这里是一次性成功的,第一次构建需要下载很多插件,大概需要十分钟

可以在/var/lib/jenkins/workspace/java-maven/下可以看到拉取的代码,找到整个项目的的jar包并执行

5.构建完成后执行shell

a.指定execute shell

b.执行结果

总结:

服务器上的jenkins是以普通用户运行的,这里的shell能够执行成功,是因为这是在jenkins家目录下执行的命令,并且文件的属主、数组都是jenkins;

网上大多数博客都是用root用户运行jenkins,并把jenkins的家目录里的所有文件属主、属组都改为root,这并不是jenkins这个软件的初衷,也不符合linux运行软件的安全标准,用Publish over SSH这个插件或者是某个任务中,源码管理的Git--Repositories--Credentials为空的,用的都是服务器上root的公钥.

以普通用户运行jenkins,在远程部署及执行命令时,会报Host key verification failed这个错,下篇博客将解决这个问题.

参考博客-IT_外卖小哥:https://yq.aliyun.com/articles/485308

jenkins+gitlab发布maven项目的更多相关文章

  1. 3.发布Maven项目到nexus中

    1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...

  2. Tomcat发布Maven项目遇到异常:java.lang.OutOfMemoryError: PermGen space

    前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1.  ...

  3. Jenkins+gitlab发布Django程序

    Jenkins+gitlab发布Django程序 一. 二. 三.shell # !/bin/bash cd /root/upload_file #git add . #git commit -m ' ...

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

    一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...

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

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

  6. Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)

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

  7. jenkins发布maven项目

    (1)环境介绍 (2)配置ssh配置:系统管理--->系统设置 做这样的配置是方便打包之后war包或jar包复制到/tomcat/update目录下 (3)安装git 1丶不要使用1.8版本以下 ...

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

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

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

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

随机推荐

  1. python3.6:DLL load failed:找不到指定的模块(from PyQt5 import QtCore)

    本人小白搭建pyqt环境时遇到问题 运行代码 from PyQt5 import QtCore' 发现错误 ImportError: DLL load failed: 找不到指定的模块 这个问题折磨了 ...

  2. python文件打包为exe可执行文件的方法

    我自己常用Pyinstaller库打包 第一步: 安装pyinstaller库   pip install pyinstaller 第二步: 在py文件所在目录输入 mydemo.py是自己写的py文 ...

  3. rs485多主

    因复位时I/O口都输出高电平.如果把I/O口直接与RS-485接口芯片的驱动器使能端DE端相连,会在CPU复位其间DE为高,从而使本节点处于发送状态.如果此时总线上其它节点在发送数据,则此次数据传输将 ...

  4. CodeForce--Benches

    A. Benches   There are nn benches in the Berland Central park. It is known that aiai people are curr ...

  5. python中子进程不支持input()函数输入

    错误的源代码: import socketimport threadingimport multiprocessing# 创建socketserve_socket = socket.socket(so ...

  6. canvas 动画库 CreateJs 之 EaselJS(下篇)

    本文来自网易云社区 作者:田亚楠 继承 对应原文:Inheritance 我们可以继承已有的「显示对象」,创建新的自定义类.实现方法有很多种,下面介绍其中之一. 举例:实现一个继承于 Containe ...

  7. 利用委托实现自己的数据缓存仓库(附上Demo)

    Demo源码 写在前面的话 写完这篇博客后,总觉得少了些什么,后来想了下,感觉自己只是把结果给亮了出来,自己为什么想到这么做,这个类库出生的缘由未详述,因此,在本段作下说明,如有不足之处,希望能和大家 ...

  8. MacOS常用软件推荐

    1.效率提升神器Alfred 可以搜索文件.应用.web搜索.词典等等 链接:https://pan.baidu.com/s/1igv4tuXkuMFOPT9E6Cc5Jg 密码:3o51 软件解压密 ...

  9. day01_01.了解php

    1.了解PHP 第一个程序 echo 'hello world'; 和python的区别,python是 print (hello world) 并且python结尾没有;2.X版本不需要加括号,但是 ...

  10. verilog写的LCD1602 显示

    在读本文之前,请先阅读 LCD1602 的 datasheet(百度到处都是) ,熟悉有关的11条指令集. LCD1602的11个指令集链接 http://www.cnblogs.com/aslmer ...