1Mavenプロジェクトの構築
1.1 MavenIntegrationプラグインをインストールします
1.2Mavenプロジェクトを作成する
1.3構成項目
コードをプルしてリモート展開するプロセスは、「ビルド」部分を除いて、フリースタイルプロジェクトのプロセスと同じです。
2パイプラインパイプラインプロジェクトの建設
2.1パイプラインの概要
1)コンセプト
パイプラインは、簡単に言うと、Jenkinsで実行されるワークフローフレームワークのセットであり、元々単一または複数のノードで独立して実行されていたタスクを接続し、単一のタスクでは完了が難しい複雑なプロセスオーケストレーションと視覚化作業を実現します。
2)パイプラインを使用することには次の利点があります
- コード:パイプラインはコードの形式で実装され、通常はソースコード管理にチェックインされるため、チームは配信プロセスを編集、確認、および反復できます。
- 耐久性:サーバーの計画的または計画外の再起動であるかどうかにかかわらず、パイプラインは回復可能です。
- 停止可能:パイプラインは、パイプラインの実行を続行するかどうかを決定するためのインタラクティブな入力を受け取ることができます。
- 多機能:パイプラインは、現実の世界で複雑な継続的デリバリー要件をサポートします。フォーク/結合、ループ実行、およびタスクの並列実行をサポートします。
- 拡張可能:Pipelineプラグインは、DSLのカスタム拡張、および他のプラグインと統合するための複数のオプションをサポートします。
3)Jenkinsパイプラインを作成するにはどうすればよいですか?
- パイプラインスクリプトはGroovy言語で実装されていますが、個別に学習する必要はありません
- GroovyPipelineは、宣言型(宣言型)構文とスクリプト型パイプライン(スクリプト型)構文の2つの構文をサポートしています。
- パイプラインを作成する方法も2つあります
。JenkinsWebUIインターフェイスにスクリプトを直接入力する方法と、Jenkinsfifileスクリプトファイルを作成してプロジェクトのソースコードライブラリに配置する方法です(通常、ソースコード管理から直接お勧めします)。 (SCM)in Jenkins)
Jenkinsfifile Pipelineを直接ロードします)。
2.2パイプラインプラグインをインストールする
Jenkinsの管理->プラグ
インの管理->オプションのプラグインプラグインをインストールした後、プロジェクトを作成するときに、より多くの「パイプライン」タイプがあります(以下のケースを参照)
2.3パイプライン構文のクイックスタート
1)宣言型-パイプライン
プロジェクト
パイプラインを作成します-> HelloWorldテンプレートを選択します。
生成されたコンテンツは次のとおりです
- ステージ:パイプライン全体のすべての実行ステージを表します。通常、複数のステージを含む1つのステージのみがあります。
- stage:パイプラインの特定のステージを表します。nが表示される場合があります。通常、コードのプル、コンパイルとビルド、デプロイなどの段階に分けられます。
- ステップ:ステージで実行する必要のあるロジックを表します。手順の中には、シェルスクリプト、gitプルコード、sshリモートパブリッシングなどがあります。
単純な宣言型パイプラインを記述します。
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('项目部署') {
steps {
echo '项目部署'
}
}
}
}
ビルドをクリックすると、ビルドプロセス全体が表示されます
2)スクリプトパイプライン脚本式-パイプライン
プロジェクトを作成する
node {
def mvnHome
stage('Preparation') {
// for display purposes
// Get some code from a GitHub repository
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Get the Maven tool.
// ** NOTE: This 'M3' Maven tool must be configured
// ** in the global configuration.
mvnHome = tool 'M3'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'target/*.jar'
}
}
- ノード:ノード。ノードはJenkinsノードです。マスターまたはエージェントは
、ステップを実行するための特定の動作環境です。これは、後でJenkinsのマスタースレーブアーキテクチャについて説明するときに使用されます。 - ステージ:パイプラインはいくつかのステージに分割できます。各ステージ
は、ビルド、テスト、デプロイなどの一連の操作を表します。ステージは論理的なグループ化の概念です。
ステップ:ステップ。ステップは最も基本的な操作単位です。文を印刷したり、Dockerイメージを作成したりできます。これは、コマンド:sh'make 'などのさまざまなJenkinsプラグインによって提供されます。これは、で実行するのと同じです。通常のシェルターミナル。makeコマンドは同じです。
簡単なスクリプト化されたパイプラインを記述します。構築結果は宣言型と同じです。
node {
def mvnHome
stage('拉取代码') {
// for display purposes
echo '拉取代码'
}
stage('编译构建') {
echo '编译构建'
}
stage('项目部署') {
echo '项目部署'
}
}
ステップ1:プルコード
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
}
}
ステップ2:コンパイルしてビルドする
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
stage('编译构建') {
steps {
sh label: '', script: 'mvn clean package'
}
}
}
}
ステップ3:プロジェクトの展開
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
stage('编译构建') {
steps {
sh label: '', script: 'mvn clean package'
}
}
stage('项目部署') {
steps {
deploy adapters: [tomcat9(credentialsId: '6d072e85-02b4-4874-a0fa-c6eecb77fe79', path: '', url: 'http://10.99.200.111:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
3)SCMのパイプラインスクリプト
現在、JenkinsのUIインターフェイスでパイプラインコードを直接記述していますが、これはスクリプトのメンテナンスには便利ではありません。パイプラインスクリプトをプロジェクトに配置することをお勧めします(バージョン管理を一緒に実行するため)。
ステップ1:Jenkinsfifileファイルを書き込む
プロジェクトのルートディレクトリにJenkinsfifileファイルを作成し、コンテンツをファイルにコピーしてから、送信してgitlabにプッシュする
か
、gitlabの現在のプロジェクトのルートパスの下にJenkinsfifileを作成し、コンテンツをファイルにコピーします。
これはgitlabを直接操作する例です
ステップ2:プロジェクト内のファイルを参照する
ステップ3:すぐにビルドする
ステップ4:プロジェクトの検証
すべてここにあります。その他の記事については、個人のWeChatパブリックアカウントを参照してください。ALLLinuxでは、スキャンしてみましょう。