jenkins部署springboot多項目


war包的部署問題不大,這里記錄jar包的部署過程:

1:jar包的體積過大問題

pom.xml參考以下配置(依賴包會分離到target/lib/,jar包體積由幾十M縮小到幾k)

<build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.ylcloud.admin.AdminWebApplication</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

 

2:

對各個項目的分離出來的lib要做一下整合,然后上傳到服務器啟動類的根目錄(要注意的是一般項目架構定了之后lib包基本是沒什么改動的,只有個別模塊的依賴包會持續更新,后續在jenkins的post step傳上去就可以了)

 

3:

結合shell進行自動部署,主要是3個腳本,這里只做一下工作記錄:

第一個是進程結束腳本:

#!/bin/bash
echo "Stopping SpringBoot Application for CMP"
#ls
pid=`ps -ef | grep $1* | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then kill -9 $pid
else echo "no pid"
fi

echo "run end"

 

第二個是項目監控腳本(保證項目按順序執行)

#!/bin/bash
echo "start script ................"



file=$1

while [ -f $file ]
do
    echo "find log ........."
    result=`grep "啟動成功" $file`
    if [[ "$result" != "" ]]
    then
        echo "springboot start ........."
        break
    else
        echo "running ......."
        sleep 1s
    fi
done
echo "springboot Started..........."

 

第三個是項目啟動腳本:

#!/bin/bash
source /etc/profile

jarversion='-0.0.1-SNAPSHOT.jar'
basepath='/cjh/yl_cloud/'

runjar(){

    sh test.sh $1

    nohup java -jar $4 $1$jarversion > $basepath$2 & 2>&1 &
    
    sh tt.sh $basepath$2

    echo $3
    
}

runjar 'ylcloud-customer-service' 'nohup.out' '核心模塊啟動完成' '-Xms10m -Xmx500m'

echo '項目啟動成功'

 

 

 

轉載請注明博客出處:http://www.cnblogs.com/cjh-notes/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM