Java 앱 빌드

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

파이프라인을 사용하여 자동으로 다음을 수행할 수 있습니다.

Android 프로젝트에서 작업하는 경우 Android 앱 빌드, 테스트 및 배포를 참조 하세요.

필수 조건

다음 예제를 실행하려면 다음이 있어야 합니다.

  • 리포지토리를 만들 수 있는 GitHub 계정. 체험 계정 만들기
  • Azure DevOps Server 컬렉션에 액세스합니다.
  • Azure DevOps 자체 호스팅 에이전트에서 Azure Pipelines를 실행하는 기능입니다.
  • Azure DevOps 프로젝트입니다. 없는 경우 지금 프로젝트를 만듭니다.

GitHub 리포지토리 만들기

GitHub 계정에 다음 리포지토리를 포크합니다.

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

파이프라인을 만듭니다.

  1. Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.

  2. 파이프라인으로 이동한 다음, 프로젝트에서 첫 번째 파이프라인을 만드는 경우 새 파이프라인 또는 만들기 파이프라인을 선택합니다.

  3. 먼저 소스 코드의 위치로 GitHub선택하여 마법사의 단계를 수행합니다. 로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.

  4. 리포지토리를 선택합니다. Azure Pipelines 앱을 설치하도록 GitHub로 리디렉션될 수 있습니다. 그렇다면 승인 및 설치를 선택합니다.

  5. 파이프라인 구성 탭이 표시되면 코드를 빌드하는 방법에 따라 Maven, Gradle 또는 Ant선택합니다.

  6. azure-pipelines-yml 파이프라인 정의가 포함된 파일이 리포지토리에 만들어지고 YAML 편집기에서 열립니다. 더 많은 작업을 추가하거나 기존 작업을 수정하여 파이프라인을 사용자 지정할 수 있습니다. 빌드 작업에 대한 자세한 내용은 코드 빌드를 참조하세요.

  7. 편집 azure-pipelines.yml을 마쳤으면 저장을 선택하고 실행합니다.

  8. 리포지토리에 azure-pipelines.yml 파일을 커밋하려면 저장을 선택하고 다시 실행 합니다.

작업을 선택하여 파이프라인의 작동을 감시합니다.

  1. 컬렉션으로 이동하여 프로젝트를 선택합니다.

  2. 파이프라인을 선택한 다음, 프로젝트에서 첫 번째 파이프라인을 만드는 경우 새 파이프라인 또는 만들기 파이프라인을 선택합니다.

  3. 먼저 소스 코드의 위치로 GitHub Enterprise Server선택하여 마법사의 단계를 수행합니다.

  4. 기존 GitHub 서비스 연결을 사용하거나 새 연결을 만듭니다.

    서비스 연결을 만들려면 다음을 수행합니다.

    1. GitHub Enterprise Server에 대한 커넥트 선택합니다.
    2. GitHub Enterprise Server URL을 입력합니다.
    3. GitHub Enterprise Server 개인용 액세스 토큰을 입력합니다. 개인용 액세스 토큰이 없는 경우 GitHub Enterprise Server 계정에 만들 수 있습니다. 자세한 내용은 개인용 액세스 토큰 만들기를 참조하세요.
  5. 리포지토리를 선택합니다. Azure Pipelines 앱을 설치하도록 GitHub로 리디렉션될 수 있습니다. 그렇다면 승인 및 설치를 선택합니다.

  6. 파이프라인 구성 탭이 표시되면 코드를 빌드하는 방법에 따라 Maven, Gradle 또는 Ant선택합니다.

  7. azure-pipelines-yml 파이프라인 정의가 포함된 파일이 리포지토리에 만들어지고 YAML 편집기에서 열립니다. 더 많은 작업을 추가하거나 기존 작업을 수정하여 파이프라인을 사용자 지정할 수 있습니다. 빌드 작업에 대한 자세한 내용은 코드 빌드를 참조하세요.

  8. 편집 azure-pipelines.yml을 마쳤으면 저장을 선택하고 실행합니다.

  9. 리포지토리에 azure-pipelines.yml 파일을 커밋하려면 저장을 선택하고 다시 실행 합니다.

작업을 선택하여 파이프라인의 작동을 확인할 수 있습니다.

이제 리포지토리에 사용자 지정할 준비가 된 YAML 파이프라인(azure-pipelines.yml)이 있습니다. 파이프라인을 변경하려면 파이프라인 페이지에서 파이프라인을 선택한 다음 파일을 편집합니다azure-pipelines.yml.

빌드 환경

Azure Pipelines를 사용하여 자체 인프라를 설정하지 않고도 Java 앱을 빌드할 수 있습니다. Windows, Linux 또는 macOS 이미지에서 빌드할 수 있습니다. Azure Pipelines의 Microsoft 호스팅 에이전트에는 Java용 최신 JDK 및 기타 도구가 미리 설치되어 있습니다. 설치된 Java 버전을 알아보려면 Microsoft 호스팅 에이전트를 참조 하세요.

적절한 이미지를 선택하려면 파일에서 다음 코드 조각을 업데이트합니다 azure-pipelines.yml .

pool:
  vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'

전체 이미지 목록은 Microsoft 호스팅 에이전트를 참조하세요.

Microsoft 호스팅 에이전트를 사용하는 대신 Java가 설치된 자체 호스팅 에이전트를 설정할 수 있습니다. 또한 자체 호스팅 에이전트를 사용하여 큰 리포지토리가 있거나 증분 빌드를 실행하는 경우 더 많은 시간을 절약할 수 있습니다.

빌드는 자체 호스팅 에이전트에서 실행됩니다. 에이전트의 호스트에 설치된 선택한 메서드를 사용하여 빌드하는 데 필요한 Java 및 도구가 있는지 확인합니다.

파이프라인 편집기에서 옵션 탭의 에이전트 풀 및 에이전트 사양 섹션에서 에이전트 풀에이전트 기능을 선택할 수 있습니다.

예를 들어 Maven 기능을 사용하여 에이전트 풀 및 에이전트를 지정하려면 파일에 다음 코드 조각을 추가합니다 azure-pipelines.yml .

pool: 
  name: MyPool
  demands: maven

코드 빌드

Maven, Gradle, Ant 또는 스크립트를 사용하여 Java 앱을 빌드할 수 있습니다. 다음 섹션에서는 각 메서드에 대한 빌드 단계를 파이프라인에 추가하는 방법을 보여 줍니다.

Maven

Maven 빌드를 사용하면 다음 작업이 파일에 추가 azure-pipelines.yml 됩니다. 프로젝트와 일치하도록 값을 바꿉합니다. 작업 옵션에 대한 자세한 내용은 Maven 작업을 참조하세요.

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

Spring Boot경우 Maven 작업도 사용할 수 있습니다. 값이 mavenPomFile 파일 경로를 반영하는지 확인합니다 pom.xml . 예를 들어 Spring Boot 샘플 리포지토리사용하는 경우 경로는 다음과 같습니다complete/pom.xml.

빌드 경로 사용자 지정

mavenPomFile 파일이 리포지토리의 루트에 없는 경우 pom.xml 값을 조정합니다. 파일 경로 값은 리포지토리의 루트(예: IdentityService/pom.xml 또는 $(system.defaultWorkingDirectory)/IdentityService/pom.xml.)를 기준으로 해야 합니다.

Maven 목표 사용자 지정

목표 값을 Maven이 실행할 공백으로 구분된 목표 목록(예: )으로 clean package설정합니다. 일반적인 Java 단계 및 목표에 대한 자세한 내용은 Apache의 Maven 설명서를 참조 하세요.

Gradle

Gradle 빌드를 사용하면 다음 작업이 파일에 추가 azure-pipelines.yml 됩니다. 이러한 옵션에 대한 자세한 내용은 Gradle 작업을 참조하세요.

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

Gradle 래퍼

리포지토리에 gradlew 파일이 있어야 합니다. 없는 경우 프로젝트의 루트 디렉터리에서 실행 gradle wrapper 하여 생성할 수 있습니다. Gradle 래퍼를 만드는 방법에 대한 자세한 내용은 Gradle을 참조하세요.

Gradle 버전 선택

리포지토리 gradle/wrapper/gradle-wrapper.properties 의 파일에 distributionUrl 빌드 중에 다운로드하고 사용할 다른 Gradle 버전을 지정하는 속성이 없는 한 에이전트 컴퓨터에 설치된 Gradle 버전이 사용됩니다.

빌드 경로 조정

workingDirectory 파일이 리포지토리의 루트에 없는 경우 gradlew 값을 조정합니다. 디렉터리 값은 리포지토리의 루트(예: IdentityService 또는 $(system.defaultWorkingDirectory)/IdentityService.)를 기준으로 해야 합니다.

gradleWrapperFile 파일이 리포지토리의 루트에 없는 경우 gradlew 값을 조정합니다. 파일 경로 값은 리포지토리의 루트(예: IdentityService/gradlew 또는 $(system.defaultWorkingDirectory)/IdentityService/gradlew.)를 기준으로 해야 합니다.

Gradle 작업 조정

Gradle에서 실행해야 하는 작업의 작업 값(예: build 또는 check.)을 조정합니다. Gradle의 일반적인 Java 플러그 인 작업에 대한 자세한 내용은 Gradle의 설명서를 참조 하세요.

Ant

Ant 빌드를 사용하여 파일에 다음 작업을 추가합니다 azure-pipelines.yml . 파일 경로 build.xml 와 같은 값을 프로젝트 구성과 일치하도록 변경합니다. 이러한 옵션에 대한 자세한 내용은 Ant 작업을 참조하세요. 샘플 리포지토리를 사용하는 경우 리포지토리에 build.xml 파일을 제공해야 합니다.

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

스크립트

명령줄 또는 스크립트를 사용하여 빌드하려면 다음 코드 조각 중 하나를 파일에 추가합니다 azure-pipelines.yml .

Inline script(인라인 스크립트)

이 단계에서는 script: Linux의 Bash와 Windows의 macOS 및 명령 프롬프트를 사용하여 인라인 스크립트를 실행합니다. 자세한 내용은 Bash 또는 명령줄 작업을 참조하세요.

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

스크립트 파일

이 작업은 리포지토리에 있는 스크립트 파일을 실행합니다. 자세한 내용은 셸 스크립트, Batch 스크립트 또는 PowerShell 작업을 참조하세요.

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

다음 단계

빌드 출력을 파이프라인에 게시할 수 있습니다. 웹 애플리케이션에 배포할 Maven 패키지 또는 .war/jar 파일에 앱을 패키지하고 게시할 수 있습니다.

배포 대상에 대한 CI/CD 파이프라인을 만드는 방법에 대해 자세히 알아봅니다.