jenkins+springboot+maven多模塊部署

一.jenkins的安裝配置java

1.去官網下載war包,這種方式比較簡單方便git

java -jar jenkins.war --httpPort=49001

2.首次運行有一個key放在服務器上須要你填入才能進入,同時須要配置帳號密碼github

3.若是沒有被牆的話,最好把推薦的包都裝上web

manage jenkin-》plugin manager-》git,mavne,publish over ssh 這三個插件裝上spring

由於整個流程最要就是用到這三個插件apache

git獲取代碼json

maven自動構建springboot

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複製到遠程機子上的位置

相關文章
相關標籤/搜索