jenkins+springboot+maven多模块部署

一.jenkins的安装配置

1.去官网下载war包,这种方式比较简单方便

java -jar jenkins.war --httpPort=49001

2.首次运行有一个key放在服务器上需要你填入才能进入,同时需要配置账号密码

3.如果没有被墙的话,最好把推荐的包都装上

manage jenkin-》plugin manager-》git,mavne,publish over ssh 这三个插件装上

因为整个流程最要就是用到这三个插件

git获取代码

maven自动构建

publish over ssh通过ssh传送文件以及ssh去运行脚本

------------------------------------------------------------------

advanced里面

http proxy onfiguration 什么都不要填,填了就会出错

如果被墙

uodate site 换成http://mirror.xmission.com/jenkins/updates/update-center.json

然后check now 看看行不行,之前是因为填了代理,所以一直不行

4  manage jenkin-》global tool configuration

jdk配本地的位置

maven和git就勾选自动安装就可以,然后save

5  configure system

填上git pluging github的的相关

Publish over ssh

passphrase  ssh时的密码,

或者不填这个填ssh的key

然后填ssh server,username是登上去的ssh账户哦, remote directory是远程主机可见的所有路径

二 新建项目

jenkintest

里面有一个module叫做client,除了.idea,gitignore,pom.xml,其他全都可以删掉。。idea只是为了维持目前的idea项目架构而已,git的时候也不需要

gitignore文件

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
*mvnw
*mvnw.cmd
*HELP.md
*.mvn

这样就把所有模块的都拿掉了

jenkin的pom.xml

1.打包方式用pom,默认不填的话是jar

 <packaging>pom</packaging>
2. build的插件用maven而不是springboot    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <!--<encoding>${project.build.sourceEncoding}</encoding>-->
                </configuration>
            </plugin>
        </plugins>
    </build>3. 模块名写上
  <modules>
        <module>client</module>
    </modules>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ljq</groupId>
    <artifactId>jenkintest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>jenkinTest</name>
    <packaging>pom</packaging>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <modules>
        <module>client</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <!--<encoding>${project.build.sourceEncoding}</encoding>-->
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!--<build>-->
        <!--<plugins>-->
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--</plugin>-->
        <!--</plugins>-->
    <!--</build>-->

</project>

4.子模块里的把parent从springboot换成父模块即可,这样就可以把所有的依赖都写在父模块的pom中,更加方便

<parent>   <groupId>com.ljq</groupId>   <artifactId>jenkintest</artifactId>   <version>0.0.1-SNAPSHOT</version>   <relativePath>../</relativePath></parent>

5.这样子之后mvn clean package是生成所有的子模块的jar包,父模块并不会生成

三 jenkin新建item

选择maven project, 然后ok,然后就可以填写configure

在第一次build之前没有workspace,workspace是用来存git下来的文件并在本地进行构建,workspace也可以删除

1 source code management

选择git

填上仓库地址

credentials   -》 add jenkins 把 git的账号密码填上

credients就可以选择了,那个name ref什么的不用填写

2,。 build trigger

第一个选项是手动构建

第二个是利用url构建

Build periodically,定期构建

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作

3.定时构建语法

* * * * *

(五颗星,中间用空格隔开)

第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

1.每30分钟构建一次:

H/30 * * * *

2.每2个小时构建一次

H H/2 * * *

3.每天早上8点构建一次

0 8 * * *

4.每天的8点,12点,22点,一天构建3次

0 8,12,22 * * *

(多个时间点,中间用逗号隔开)

4.build

跳过测试clean package -Dmaven.test.skip=True

5. 构建之后执行脚本

sourcefiles 就是你要传送的jar包,可以去workspace看位置

remove prefix 把sourcefile的前缀去掉,只剩jar包名字

remote directory: jar复制到远程机子上的位置

原文地址:https://www.cnblogs.com/linjiaqin/p/10797322.html

时间: 2024-11-07 15:29:08

jenkins+springboot+maven多模块部署的相关文章

jenkins+git+maven搭建自动化部署项目环境

简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky-        lulu/cxf_demo-Maven-Webapp)     系统:centos6.5 maven: Apache Maven 3.3.9 git:git version 2.0.0 1.首先安装git,看以前另外一篇博客 http://www.cnblogs.co

Jenkins构建Maven多模块项目时,单独编译子模块,并且不触发构建其它模块

一.Jenkins构建Maven多模块项目时,单独编译子模块 配置: 1.Root POM指向父pom.xml 2.Goals and options指定构建模块的参数:mvn -pl jsoft-web -am clean package,单独构建jsoft-web项目以及它所依赖的其它项目.参考:http://www.cnblogs.com/EasonJim/p/8350560.html 二.通过上面的操作之后确实能单独构建了,但可能会同时触发Jenkins上的其它模块的项目,可以通过屏蔽下

SpringBoot+Maven 多模块项目的构建、运行、打包

本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建.运行.打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 项目的目录: 主项目 springboot-multi 子模块 entity.dao.service.web 一.使用IDEA创建一个SpringBoot项目 : File -> new -> Project 项目名称为springboot-multi 二.删除项目中的src目录,把pom.

Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器

宿主机安装docker(省略) 宿主机安装maven 下载二进制包解压到/var/docker_data/jenkins/jenkins_home下面 https://maven.apache.org/download.cgi Jenkins镜像安装 下载Jenkins镜像(一般都是Ubuntu版) FROM jenkins USER root #清除了基础镜像设置的源,切换成腾讯云的jessie源 #使用非腾讯云环境的需要将 tencentyun 改为 aliyun RUN echo '' >

Jenkins+git+maven 打包构建部署

springboot+maven多模块工程dependency not found

参见:https://blog.csdn.net/m0_37943753/article/details/81031319. 重点是<dependencyManagement>标签的作用,只是用来管理依赖版本号,并不会把依赖下载到本地仓库,所以报找不到. 只要了解这一点,先将此标签注释,等依赖下载,问题就解决了. 当然,也可以选择暂时无视这个报错,等子工程将相关依赖下载到本地之后,也就没问题了. 原文地址:https://www.cnblogs.com/magnussen1996/p/1030

jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理

一.用户管理 jenkins自身带有权限管理,入口:系统管理-->全局安全配置,这里的权限配置太过简略,没有角色的概念,显然无法满足我们复杂的需求,所以在这个时候引入了 Jenkins 的一个插件:Role-based Authorization Strategy 安装插件:Role-based Authorization Strategy,插件管理-->可选插件搜索一下点击安装,安装完后重启就可以使用该插件 系统管理-->全局安全配置,然后用重新登录一下 系统管理-->Manag

基于tomcat插件的maven多模块工程热部署

内容属原创,转载请注明出处 写在前面的话 最近一直比较纠结,归根结底在于工程的模块化拆分.以前也干过这事,但是一直对以前的结果不满意,这会重操旧业,希望搞出个自己满意的结果. 之前有什么不满意的呢? 1. 基于maven拆分模块后,热部署的效果不好,经常出故障. 2. 对于多个子web工程,不能做到任意一个web工程都可以放到tomcat里运行,要在外面搞个壳子组合多个工程. 于是,有了这纠结的一周,也有了此文. 本文关于什么 如标题所言,本文涉及到如下几个内容: 1. maven多模块工程 2

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成

CentOS6.8 部署Tomcat+jenkins+git+maven 持续集成 一.环境介绍: 1.操作系统:CentOS 6.8  IP:192.168.1.100 2.JDK版本:jdk1.8.0_101 3.Tomcat版本:tomcat-9.0.0.M21 4.jenkins版本: Jenkins ver. 2.46.3 5.git版本:git version 2.9.4 6.maven版本:3.5.0 二.环境部署 1.下载所需软件包 # mkdir /tmp/soft ; cd