Java アプリのビルドBuild Java apps

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

注意

このガイダンスでは、Azure Pipelines で使用できる YAML ベースのパイプラインを使用します。This guidance uses YAML-based pipelines available in Azure Pipelines. TFS の場合は、以下の YAML で使用されているタスクに対応するタスクを使用します。For TFS, use tasks that correspond to those used in the YAML below.

このガイダンスでは、Java プロジェクトを自動的にビルドする方法について説明します。This guidance explains how to automatically build Java projects. (Android プロジェクトで作業している場合は、「 android アプリのビルド、テスト、およびデプロイ」を参照してください)。(If you're working on an Android project, see Build, test, and deploy Android apps.)

最初のパイプラインの作成Create your first pipeline

Azure Pipelines するのは初めてですか?Are you new to Azure Pipelines? その場合は、他のセクションに進む前に、このセクションを作成してみることをお勧めします。If so, then we recommend you try this section to create before moving on to other sections.

コードを取得するGet the code

このリポジトリを GitHub にフォークします。Fork this repo in GitHub:

Azure DevOps Server 2019 の Git リポジトリにこのリポジトリをインポートします。Import this repo into your Git repo in Azure DevOps Server 2019:

このリポジトリを TFS の Git リポジトリにインポートします。Import this repo into your Git repo in TFS:

https://github.com/MicrosoftDocs/pipelines-java

Azure Pipelines にサインインしますSign in to Azure Pipelines

Azure Pipelinesにサインインします。Sign in to Azure Pipelines. サインインすると、ブラウザーに移動して https://dev.azure.com/my-organization-name Azure DevOps ダッシュボードが表示されます。After you sign in, your browser goes to https://dev.azure.com/my-organization-name and displays your Azure DevOps dashboard.

選択した組織内で、 プロジェクト を作成します。Within your selected organization, create a project. 組織内にプロジェクトがない場合は、[ 開始するプロジェクトの作成 ] 画面が表示されます。If you don't have any projects in your organization, you see a Create a project to get started screen. それ以外の場合は、ダッシュボードの右上隅にある [ プロジェクトの作成 ] ボタンを選択します。Otherwise, select the Create Project button in the upper-right corner of the dashboard.

パイプラインを作成するCreate the pipeline

  1. Azure DevOps 組織にサインインし、プロジェクトに移動します。Sign in to your Azure DevOps organization and navigate to your project.

  2. [ パイプライン] にアクセスし、[ 新しいパイプライン] を選択します。Go to Pipelines, and then select New Pipeline.

  3. 最初に、ソース コードの場所として GitHub を選択し、ウィザードの手順を実行します。Walk through the steps of the wizard by first selecting GitHub as the location of your source code.

  4. サインインするために GitHub にリダイレクトされる場合があります。You might be redirected to GitHub to sign in. その場合は、GitHub の資格情報を入力します。If so, enter your GitHub credentials.

  5. リポジトリの一覧が表示されたら、リポジトリを選択します。When the list of repositories appears, select your repository.

  6. Azure Pipelines アプリをインストールするために、GitHub にリダイレクトされる場合があります。You might be redirected to GitHub to install the Azure Pipelines app. その場合は、[ 承認 & インストール] を選択します。If so, select Approve & install.

[ 構成 ] タブが表示されたら、[ Maven] を選択します。When the Configure tab appears, select Maven.

  1. 新しいパイプラインが表示されたら、YAML でその動作を確認します。When your new pipeline appears, take a look at the YAML to see what it does. 準備ができたら、[ 保存して実行] を選択します。When you're ready, select Save and run.

    新しい YAML パイプラインでの [保存して実行] ボタンSave and run button in a new YAML pipeline

  2. 新しい azure-pipelines ファイルをリポジトリにコミットするように求めるメッセージが表示されます。You're prompted to commit a new azure-pipelines.yml file to your repository. メッセージが表示されたら、[ 保存して再度実行 する] を選択します。After you're happy with the message, select Save and run again.

    パイプラインの動作を監視する場合は、[ビルド] ジョブを選択します。If you want to watch your pipeline in action, select the build job.

    自分で自動的に作成されたパイプラインを作成して実行しました。これは、コードが Maven テンプレートに適したものであると考えられたためです。You just created and ran a pipeline that we automatically created for you, because your code appeared to be a good match for the Maven template.

    これで、お客様がカスタマイズできるようにするための機能を備えた既製のパイプライン () がリポジトリに作成されました azure-pipelines.ymlYou now have a working YAML pipeline (azure-pipelines.yml) in your repository that's ready for you to customize!

  3. パイプラインを変更する準備ができたら、[ パイプライン ] ページでそれを選択し、ファイルを 編集azure-pipelines.yml ます。When you're ready to make changes to your pipeline, select it in the Pipelines page, and then Edit the azure-pipelines.yml file.

  4. パイプラインをカスタマイズするための一般的な方法のいくつかについては、以下のセクションを参照してください。See the sections below to learn some of the more common ways to customize your pipeline.

  1. パイプラインを作成します (方法がわからない場合は、「 最初のパイプラインを作成する」を参照し、テンプレートには [ Maven] を選択します)。Create a pipeline (if you don't know how, see Create your first pipeline, and for the template select Maven. このテンプレートは、サンプルリポジトリでコードをビルドするために必要なタスクを自動的に追加します。This template automatically adds the tasks you need to build the code in the sample repository.

  2. パイプラインを保存し、ビルドをキューに格納します。Save the pipeline and queue a build. [ビルド #nnnnnnnn] が [ キューに登録されています ] というメッセージが表示されたら、[number] リンクを選択して、パイプラインの動作を確認します。When the Build #nnnnnnnn.n has been queued message appears, select the number link to see your pipeline in action.

    これで、カスタマイズできる動作中のパイプラインが完成しました。You now have a working pipeline that's ready for you to customize!

  3. パイプラインを変更する準備ができたら、それを 編集 します。When you're ready to make changes to your pipeline, Edit it.

  4. パイプラインをカスタマイズするための一般的な方法のいくつかについては、以下のセクションを参照してください。See the sections below to learn some of the more common ways to customize your pipeline.

ビルド環境Build environment

Azure Pipelines を使用すると、独自のインフラストラクチャをセットアップしなくても、Java アプリを構築できます。You can use Azure Pipelines to build Java apps without needing to set up any infrastructure of your own. Windows、Linux、または MacOS イメージでビルドできます。You can build on Windows, Linux, or MacOS images. Azure Pipelines の Microsoft がホストするエージェントには、最新の Jdk および Java 用のその他のツールがプレインストールされています。The Microsoft-hosted agents in Azure Pipelines have modern JDKs and other tools for Java pre-installed. インストールされている Java のバージョンを確認するには、「 Microsoft がホストするエージェント」を参照してください。To know which versions of Java are installed, see Microsoft-hosted agents.

ファイル内の次のスニペットを更新して azure-pipelines.yml 、適切なイメージを選択します。Update the following snippet in your azure-pipelines.yml file to select the appropriate image.

pool:
  vmImage: 'ubuntu-16.04' # other options: 'macOS-10.14', 'vs2017-win2016'

イメージの完全な一覧については、「 Microsoft がホストするエージェント 」を参照してください。See Microsoft-hosted agents for a complete list of images.

Microsoft がホストするエージェントを使用する代わりに、Java がインストールされた 自己ホスト型エージェント を設定することもできます。As an alternative to using Microsoft-hosted agents, you can set up self-hosted agents with Java installed. また、大規模なリポジトリがある場合や、インクリメンタルビルドを実行する場合は、自己ホスト型エージェントを使用して時間を節約することもできます。You can also use self-hosted agents to save additional time if you have a large repository or you run incremental builds.

ビルドは 自己ホスト型エージェントで実行されます。Your builds run on a self-hosted agent. エージェントに Java がインストールされていることを確認します。Make sure that you have Java installed on the agent.

コードをビルドするBuild your code

MavenMaven

Maven でビルドするには、次のスニペットをファイルに追加し azure-pipelines.yml ます。To build with Maven, add the following snippet to your azure-pipelines.yml file. プロジェクトの構成に合わせて、ファイルのパスなどの値を変更し pom.xml ます。Change values, such as the path to your pom.xml file, to match your project configuration. これらのオプションの詳細については、 Maven のタスクを参照してください。See the Maven task for more about these options.

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    goals: 'package'

ビルドパスをカスタマイズするCustomize the build path

ファイルが mavenPomFile pom.xml リポジトリのルートにない場合は、値を調整します。Adjust the mavenPomFile value if your pom.xml file isn't in the root of the repository. ファイルパス値は、またはのように、リポジトリのルートに対して相対的である必要があり IdentityService/pom.xml $(system.defaultWorkingDirectory)/IdentityService/pom.xml ます。The file path value should be relative to the root of the repository, such as IdentityService/pom.xml or $(system.defaultWorkingDirectory)/IdentityService/pom.xml.

Maven の目標をカスタマイズするCustomize Maven goals

[ 目標 ] の値を、Maven が実行する目標のスペース区切りのリスト (など) に設定し clean package ます。Set the goals value to a space-separated list of goals for Maven to execute, such as clean package.

Java の一般的なフェーズと目標の詳細については、 Apache の Maven のドキュメントを参照してください。For details about common Java phases and goals, see Apache's Maven documentation.

GradleGradle

Gradle を使用してビルドするには、次のスニペットをファイルに追加し azure-pipelines.yml ます。To build with Gradle, add the following snippet to your azure-pipelines.yml file. これらのオプションの詳細については、「 Gradle タスク」を参照してください。See the Gradle task for more about these options.

steps:
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'build'

Gradle のバージョンを選択するChoose the version of Gradle

リポジトリのファイルに、 gradle/wrapper/gradle-wrapper.properties distributionUrl ビルド時にダウンロードして使用する別の Gradle バージョンを指定するプロパティが含まれていない場合は、エージェントコンピューターにインストールされている Gradle のバージョンが使用されます。The version of Gradle installed on the agent machine will be used unless your repository's gradle/wrapper/gradle-wrapper.properties file has a distributionUrl property that specifies a different Gradle version to download and use during the build.

ビルドパスを調整するAdjust the build path

ファイルが workingDirectory gradlew リポジトリのルートにない場合は、値を調整します。Adjust the workingDirectory value if your gradlew file isn't in the root of the repository. ディレクトリの値は、リポジトリのルート (やなど) に対して相対的である必要があり IdentityService $(system.defaultWorkingDirectory)/IdentityService ます。The directory value should be relative to the root of the repository, such as IdentityService or $(system.defaultWorkingDirectory)/IdentityService.

ファイルが gradleWrapperFile gradlew リポジトリのルートにない場合は、値を調整します。Adjust the gradleWrapperFile value if your gradlew file isn't in the root of the repository. ファイルパス値は、またはのように、リポジトリのルートに対して相対的である必要があり IdentityService/gradlew $(system.defaultWorkingDirectory)/IdentityService/gradlew ます。The file path value should be relative to the root of the repository, such as IdentityService/gradlew or $(system.defaultWorkingDirectory)/IdentityService/gradlew.

Gradle タスクの調整Adjust Gradle tasks

やなど、Gradle が実行するタスクの タスク 値を調整し build check ます。Adjust the tasks value for the tasks that Gradle should execute, such as build or check.

Gradle の一般的な Java プラグインタスクの詳細については、 Gradle のドキュメントを参照してください。For details about common Java Plugin tasks for Gradle, see Gradle's documentation.

AntAnt

Ant を使用してビルドするには、次のスニペットをファイルに追加し azure-pipelines.yml ます。To build with Ant, add the following snippet to your azure-pipelines.yml file. プロジェクトの構成に合わせて、ファイルのパスなどの値を変更し build.xml ます。Change values, such as the path to your build.xml file, to match your project configuration. これらのオプションの詳細については、 Ant タスクを参照してください。See the Ant task for more about these options.

steps:
- task: Ant@1
  inputs:
    workingDirectory: ''
    buildFile: 'build.xml'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'

スクリプトScript

コマンドラインまたはスクリプトを使用してビルドするには、次のいずれかのスニペットをファイルに追加し azure-pipelines.yml ます。To build with a command line or script, add one of the following snippets to your azure-pipelines.yml file.

[インライン スクリプト]Inline script

このステップでは、Linux では script: Bash、Windows ではコマンドプロンプトを使用して、インラインスクリプトを実行します。The script: step runs an inline script using Bash on Linux and macOS and Command Prompt on Windows. 詳細については、 Bash または コマンドライン のタスクを参照してください。For details, see the Bash or Command line task.

steps:
- script: |
    echo Starting the build
    mvn package
  displayName: 'Build with Maven'

スクリプト ファイルScript file

このスニペットは、リポジトリ内のスクリプトファイルを実行します。This snippet runs a script file that is in your repository. 詳細については、「 シェルスクリプト」、「 Batch スクリプト」、または「 PowerShell タスク」を参照してください。For details, see the Shell Script, Batch script, or PowerShell task.

steps:
- task: ShellScript@2
  inputs:
    scriptPath: 'build.sh'

次の手順Next Steps

アプリをビルドしてテストした後、ビルド出力を Azure Pipelines または TFS にアップロードしたり、Maven パッケージを作成して発行したり、ビルド出力を war/jar ファイルにパッケージ化して web アプリケーションに配置したりすることができます。After you've built and tested your app, you can upload the build output to Azure Pipelines or TFS, create and publish a Maven package, or package the build output into a .war/jar file to be deployed to a web application.

次に、選択したデプロイターゲットの CI/CD パイプラインを作成する方法について、さらに学習することをお勧めします。Next we recommend that you learn more about creating a CI/CD pipeline for the deployment target you choose: