# Ant를 사용하여 Java 빌드 및 테스트

GitHub Actions CI(연속 통합) 워크플로를 만들어 Ant를 사용하여 Java 프로젝트를 빌드하고 테스트하는 방법을 알아봅니다.

## 소개

이 가이드에서는 Ant 빌드 시스템을 사용하여 Java 프로젝트에 CI(연속 통합)를 수행하는 워크플로를 만드는 방법을 보여 줍니다. 만든 워크플로를 사용하면 끌어오기 요청에 커밋할 때 기본 분기에 대한 빌드 또는 테스트 오류가 발생하는 경우를 확인할 수 있습니다. 이 방법은 코드가 항상 정상인지 확인하는 데 도움이 될 수 있습니다. CI 워크플로를 확장하여 워크플로 실행에서 아티팩트를 업로드할 수 있습니다.

GitHub에서 호스팅하는 실행기에는 JDK(Java Development Kit)와 Ant가 미리 설치된 소프트웨어 도구 캐시가 제공됩니다. JDK 및 Ant용 소프트웨어 및 미리 설치된 버전 목록은 [GitHub 호스팅 실행기](/ko/actions/using-github-hosted-runners/about-github-hosted-runners#supported-software)을(를) 참조하세요.

## 필수 조건

YAML 및 GitHub Actions의 구문에 대해 잘 알고 있어야 합니다. 자세한 내용은 다음을 참조하세요.

* [GitHub Actions에 대한 워크플로 구문](/ko/actions/using-workflows/workflow-syntax-for-github-actions)
* [워크플로 작성](/ko/actions/learn-github-actions)

Java 및 Ant 프레임워크를 기본적으로 이해하는 것이 좋습니다. 자세한 내용은 [Apache Ant 설명서](https://ant.apache.org/manual/)를 참조하세요.

## Ant 워크플로 템플릿 사용

빠르게 시작하려면 워크플로 템플릿을 리포지토리의 `.github/workflows` 디렉터리에 추가합니다.

GitHub에서는 대다수의 Java 및 Ant 프로젝트에 맞게 설계된 Ant 워크플로 템플릿을 제공합니다. 이 가이드의 후속 섹션에서는 이 워크플로 템플릿을 사용자 지정하는 방법에 대한 예시를 제공합니다.

1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

2. 리포지토리 이름에서 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> 작업**을 클릭합니다.

   !["github/docs" 리포지토리의 탭 스크린샷. "작업" 탭은 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/repository/actions-tab-global-nav-update.png)

3. 리포지토리에 워크플로가 이미 있는 경우 **새 워크플로**를 클릭합니다.

4. "워크플로 선택" 페이지에는 권장되는 워크플로 템플릿의 선택 항목이 표시됩니다. "Java with Ant"를 검색합니다.

5. "Ant를 사용한 Java" 워크플로에서 **Configure** 클릭합니다.

6. 필요에 따라 워크플로를 편집합니다. 예를 들어 Java 버전을 변경합니다.

7. ```
          **변경 내용 커밋**을 클릭합니다.
   ```

`ant.yml` 워크플로 파일이 리포지토리의 `.github/workflows` 디렉터리에 추가됩니다.

### Java 버전 및 아키텍처 지정

워크플로 템플릿은 x64 플랫폼의 경우 OpenJDK 8을 포함하도록 `PATH`을(를) 설정합니다. 다른 버전의 Java를 사용하거나 다른 아키텍처(`x64` 또는 `x86`)를 대상으로 지정하려는 경우 `setup-java` 작업을 사용하여 다른 Java 런타임 환경을 선택할 수 있습니다.

예를 들어 x64 플랫폼용 Adoptium에서 제공하는 JDK 버전 11을 사용하려면 `setup-java` 작업을 사용하고 `java-version`, `distribution` 및 `architecture` 매개 변수를 각각 `'11'`, `'temurin'` 및 `x64`로 구성할 수 있습니다.

```yaml copy
steps:
  - uses: actions/checkout@v6
  - name: Set up JDK 11 for x64
    uses: actions/setup-java@v4
    with:
      java-version: '11'
      distribution: 'temurin'
      architecture: x64
```

자세한 내용은 [`setup-java`](https://github.com/actions/setup-java) 작업을 참조하세요.

## 코드 빌드 및 테스트

코드를 빌드하고 테스트하기 위해 로컬에서 사용하는 것과 동일한 명령을 사용할 수 있습니다.

워크플로 템플릿은 `build.xml` 파일에 지정된 기본 대상을 실행합니다. 기본 대상은 일반적으로 클래스를 빌드하고 테스트를 실행하고 클래스를 배포 가능한 형식(예시: JAR 파일)으로 패키지하도록 설정됩니다.

다른 명령을 사용하여 프로젝트를 빌드하거나 다른 대상을 실행하려는 경우 이를 지정할 수 있습니다. 예를 들어 `jar` 파일에 구성된 `build-ci.xml` 대상을 실행할 수 있습니다.

```yaml copy
steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'
  - name: Run the Ant jar target
    run: ant -noinput -buildfile build-ci.xml jar
```

## 워크플로 데이터를 아티팩트로 패키지

빌드가 성공하고 테스트가 통과된 후 결과 Java 패키지를 빌드 아티팩트로 업로드할 수 있습니다. 그러면 워크플로 실행의 일부로 빌드된 패키지를 저장하고 다운로드할 수 있습니다. 아티팩트는 병합되기 전에 로컬 환경에서 끌어오기 요청을 테스트하고 디버그하는 데 도움이 될 수 있습니다. 자세한 내용은 [워크플로 아티팩트와 데이터 저장 및 공유](/ko/actions/using-workflows/storing-workflow-data-as-artifacts)을(를) 참조하세요.

Ant는 일반적으로 `build/jar` 디렉터리에 JAR, EAR 또는 WAR과 같은 출력 파일을 생성합니다.
`upload-artifact` 작업을 사용하여 해당 디렉터리의 콘텐츠를 업로드할 수 있습니다.

```yaml copy
steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'

  - run: ant -noinput -buildfile build.xml
  - uses: actions/upload-artifact@v4
    with:
      name: Package
      path: build/jar
```