Apache ANT 튜토리얼: Ant 빌드 도구란 무엇입니까? 예

⚡ 스마트 요약

Apache ANT는 Java XML 빌드 파일을 통해 컴파일, 테스트, 패키징 및 배포를 자동화하는 빌드 도구입니다. 이 문서에서는 해당 도구를 정의합니다. trac그 역사에 대해, Windows 설치 과정을 설명하고, 프로젝트 구조를 설명하며, Maven과 비교합니다. Gradle.

  • 🔨 핵심 정의: Ant는 Another Neat Tool의 약자로, 명령줄에서 소스 코드를 실행 가능한 애플리케이션으로 변환하는 도구입니다.
  • 📄 빌드 파일: 모든 명령어는 일반적인 build.xml이라는 이름의 XML 파일에 저장되어 있으며, 추가적인 프로그래밍 언어가 필요하지 않습니다.
  • 🧱 3개 노드 구조: 빌드 파일은 항상 타겟 안에 태스크를, 그리고 단일 프로젝트 요소 안에 타겟을 중첩합니다.
  • 🔗 종속성 제어: depends 속성은 대상 순서를 지정하므로 컴파일은 항상 jar 및 배포 전에 실행됩니다.
  • ⚙️ 환경 설정: 설치하려면 JDK, ANT_HOME 변수, 그리고 Ant bin 폴더가 시스템 경로에 추가되어 있어야 합니다.
  • 🆚 도구 비교: Ant는 절차적 자유를 제공하고, Maven은 의존성 관리를 통해 관례를 강제합니다. Gradle 스크립트 기반 빌드를 통해 두 가지를 모두 결합합니다.
  • 🌍 휴대성 이점: 빌드는 다음에서 동일하게 실행됩니다. Windows 그리고 리눅스는 어디에서나 Java 가상 머신을 사용할 수 있습니다.

아파치 ANT 튜토리얼

빌드 도구란 무엇입니까?

빌드 도구는 새로운 버전의 프로그램을 빌드하는 데 사용되는 프로그래밍 도구입니다. 모든 소스 코드에서 실행 가능한 애플리케이션 생성을 자동화합니다.

빌드 도구가 없다면 개발자는 변경 사항이 있을 때마다 모든 소스 파일을 수동으로 컴파일하고, 리소스를 복사하고, 테스트 스위트를 실행하고, 결과를 패키징해야 합니다. 빌드 도구는 이러한 단계를 한 번만 기록하고 모든 머신에서 동일하게 반복합니다.

아파치 개미란 무엇입니까?

아파치 개미 하는 Java-빌딩을 위한 기반 명령줄 도구 Java 순수의 완전한 이식성을 갖춘 애플리케이션 Java Ant는 개발자들이 애자일 원칙과 테스트 주도 개발을 도입하여 문서 생성과 같은 반복적인 개발 작업을 자동화할 수 있도록 해주는 도구입니다. Ant는 Another Neat Tool의 약자입니다.

아파치 개미

다이어그램에서 볼 수 있듯이 Ant는 빌드 파일을 읽고, 파일 내의 대상 순서를 결정한 다음, 애플리케이션을 컴파일, 복사, 테스트 및 패키징하는 개별 작업을 실행합니다.

Apache Ant 빌드 도구는 어떤 용도로 사용되나요?

빌드 도구를 사용하면 다음과 같은 중요한 이점이 있습니다.

  • 빌드 도구를 사용하면 소스 코드 컴파일, 소프트웨어 테스트 실행, 소프트웨어 배포용 파일 생성과 같은 특정 반복 작업을 자동화할 수 있습니다.
  • 빌드 도구는 대부분 그래픽 사용자 인터페이스 없이 실행됩니다.
  • 소스 코드를 실행 가능한 코드로 변환하는 데 도움이 됩니다.
  • 이 기능은 필요한 경우에만 파일을 다시 컴파일하는 옵션을 제공합니다.
  • 이 기능을 사용하면 비교적 짧은 시간 안에 많은 수의 파일을 컴파일할 수 있습니다.
  • 널리 사용되는 두 가지 빌드 도구는 다음과 같습니다. Java 개발자는 Apache입니다. 메이븐 그리고 개미.

아파치 앤트의 역사

이제 아파치 앤트 빌드 도구의 역사에 대해 알아보겠습니다.

Apache Ant 도구의 중요한 역사적 랜드마크는 다음과 같습니다.

  • 제임스 던컨 데이비슨은 2000년 7월에 앤트를 만들었습니다.
  • 원래는 Tomcat을 구축하는 데 사용되었으며 Tomcat 배포 키트에 내장된 제품으로 제공되었습니다.
  • 2014년 5월, Apache Ant 버전 1.9.4가 다양한 고급 기능을 포함하여 출시되었습니다.
  • 1.10.x 라인은 2017년에 시작되었으며 현재까지 활발하게 유지 관리되는 브랜치입니다.
  • 버전 1.10.17은 2026년 4월 10일에 출시되었으며 최소 요구 사양은 다음과 같습니다. Java 8 런타임.

아파치 앤트의 특징

다음은 Apache Ant의 주요 기능입니다.

  • 오픈 소스 프로젝트입니다.
  • 이를 통해 양쪽에서 빌드를 실행할 수 있습니다. Windows 그리고 UNIX 또는 Linux 시스템.
  • 당신에게 필요한 것은 단 하나뿐입니다. JVMJVM이 설치된 곳이라면 어디에서든 실행되기 때문입니다.
  • 이 프로그램은 광범위한 사전 정의된 작업을 제공합니다.
  • 이 기능은 파일을 한 위치에서 다른 위치로 복사하는 데 도움이 됩니다.
  • 사용자 정의 작업을 개발할 수 있는 인터페이스를 제공합니다.
  • 이 기능을 사용하면 명령줄에서 빌드를 실행할 수 있으며, 기존 시스템과 쉽게 통합됩니다. 무료 및 상업용 IDE.
  • 이 기능을 사용하면 바이너리 파일을 테스트 서버에 배포할 수 있습니다.
  • 확장 가능한 아키텍처를 제공합니다.
  • 이 기능은 릴리스 간 하위 호환성을 제공합니다.

Apache Ant를 설치하고 구성하는 방법 Windows

이제 Apache Ant를 설치하는 과정을 알아보겠습니다. Windows.

우리는 귀하가 이미 다운로드하여 설치했다고 가정합니다. Java 개발 키트 컴퓨터에 JDK(JavaScript Code)가 설치되어 있는지 확인하십시오. JAVA_HOME 환경 변수가 JDK가 설치된 폴더로 설정되어 있는지 확인하세요. Ant를 설치하려면 아래 단계를 따르십시오.

단계 1) 바이너리를 다운로드하세요.
다음에서 바이너리를 다운로드하세요. https://ant.apache.org/bindownload.cgi

Apache Ant 설치 및 구성 Windows

단계 2) 파일을 압축 해제하십시오.
이 zip 파일을 c:\folder와 같이 편리한 위치에 압축 해제하세요. WinZip, WinRAR, 7-Zip또는 이와 유사한 도구.

Apache Ant 설치 및 구성 Windows

단계 3) 환경 변수를 만듭니다.
"ANT_HOME"이라는 환경 변수를 생성하고 해당 변수에 Ant 폴더의 위치를 ​​값으로 지정하십시오.

  1. '내 PC' 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
  2. 속성을 클릭하십시오.

Apache Ant 설치 및 구성 Windows

단계 4) 시스템 설정으로 이동합니다.
"고급 시스템 설정"을 클릭하세요.

Apache Ant 설치 및 구성 Windows

단계 5) 시스템 속성에서,
"고급" 탭을 클릭하세요.

Apache Ant 설치 및 구성 Windows

단계 6) 환경 변수를 찾으세요.
“환경 변수…” 버튼을 클릭하세요.

Apache Ant 설치 및 구성 Windows

단계 7) 새 변수를 생성합니다.
새로운 사용자 변수를 생성하려면 "새로 만들기"를 클릭하세요.

Apache Ant 설치 및 구성 Windows

단계 8) 변수 정보를 입력하세요.
새 사용자 변수 정보를 입력하세요.

  1. 변수 이름을 ANT_HOME으로 입력하세요.
  2. 변수 값에 Ant 압축 해제 폴더 경로를 입력하십시오. 예를 들어 C:\apache-ant-1.10.17과 같이 입력합니다.
  3. "확인"버튼을 클릭합니다.

Apache Ant 설치 및 구성 Windows

단계 9) 변수가 생성되었습니다.
"확인"버튼을 클릭합니다.

Apache Ant 설치 및 구성 Windows

단계 10) 화면을 닫습니다.
"확인"을 클릭하여 화면을 닫습니다.

Apache Ant 설치 및 구성 Windows

💡 팁: ANT_HOME은 설치 폴더 자체를 가리켜야 하며, 그 안에 있는 bin 폴더를 가리키면 안 됩니다. 그런 다음 추가하세요. %ANT_HOME%\bin Path 변수에 추가하면 어떤 디렉토리에서든 ant 명령어를 인식할 수 있습니다.

Ant 설치가 성공적으로 완료되었는지 여부는 다음 명령어를 통해 확인할 수 있습니다.ping 명령 프롬프트에서 "ant -version" 명령어를 입력합니다.

다음 화면이 표시됩니다.

Apache Ant 설치 및 구성 Windows

아파치 ANT의 예

아래 빌드 파일은 hello라는 이름의 단일 타겟을 정의하며, 이 타겟은 메시지를 출력합니다. project 요소는 이름과 기본 타겟을 선언하므로, Ant는 명령줄에 타겟이 지정되지 않았을 때 어떤 작업을 실행해야 하는지 알 수 있습니다.

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

이 파일을 "build.xml"로 저장한 다음 다음 두 단계를 따르세요.

  • 명령 프롬프트를 열고 build.xml 파일이 있는 디렉토리로 이동하세요.
  • 달리기 ant hello, 또는 단순히 anthello가 기본 대상으로 지정되어 있기 때문입니다. 다른 파일 이름을 사용하려면 다음 명령을 실행하세요. ant -f mybuild.xml hello.

출력:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

ANT 프로젝트 구조

ANT 프로젝트 구조

ANT 프로젝트 구조

구조도에서 볼 수 있듯이, 모든 빌드에는 세 개의 노드가 포함됩니다.

  • 하이라이트
  • Target
  • 태스크

하이라이트

Apache ANT의 빌드 파일 내부에 있는 모든 항목은 프로젝트 아래에 있습니다.

속성 :

  • 이름: 프로젝트 이름.
  • Basedir: 이 디렉터리는 모든 경로를 계산하는 데 사용되는 기본 디렉터리입니다. "basedir" 속성을 사용하여 이 값을 재정의할 수 있습니다.
  • 태만: 이 기능을 사용하면 이 프로젝트의 기본 타겟을 정의할 수 있습니다. 타겟이 지정되지 않으면 Ant는 기본 타겟을 실행합니다.

Target

타겟은 빌드 프로세스에서 특정 상태에 도달하기 위해 정의된 일련의 작업입니다.

속성 :

  • 이름: 대상의 이름(필수).
  • 상품 설명 Descript표적의 이온.
  • 의존: 이 현재 목표는 어떤 목표에 달려 있습니까?
  • 만약: 대상 속성에 값이 설정된 경우에만 대상을 실행합니다.
  • 다음을 제외하고 : 속성 값이 설정되지 않은 경우에만 대상을 실행합니다.

작업

태스크는 실행될 수 있는 코드 조각입니다. 태스크는 여러 개의 인자 또는 속성을 가질 수 있습니다.

과제를 작성하는 일반적인 방법 패턴은 다음과 같습니다.

<name attribute1="value" attribute2="value2"…/>

내장된 작업을 사용하거나 직접 작업을 만들 수 있습니다. 아래 표는 거의 모든 항목에 나타나는 작업 목록입니다. Java 빌드 파일.

태스크 목적 일반적인 속성
에코 콘솔에 메시지를 출력합니다. 메시지
mkdir 디렉토리 생성 DIR
삭제 파일 또는 디렉터리를 제거합니다. 디렉터리, 빈 디렉터리 포함
javac 편집하다 Java 소스 파일 srcdir, destdir, includeantruntime
항아리 클래스들을 JAR 아카이브로 패키징하세요 대상 파일, 기반 디렉터리
복사 파일 복사 (위치 간 복사) 파일, todir
주니트 단위 테스트 실행 실패 중지, 요약 인쇄

여러 항목을 포함하는 전체 build.xml 예제 Targets

실제 빌드 파일은 여러 대상을 함께 연결합니다. `depends` 속성은 순서를 보장하므로 Ant는 출력 폴더를 정리하고 소스 코드를 컴파일한 다음 JAR 파일을 빌드합니다.

<?xml version="1.0"?>
<project name="DemoApp" default="jar" basedir=".">

    <!-- reusable values -->
    <property name="src.dir"   value="src"/>
    <property name="build.dir" value="build"/>

    <target name="clean" description="Remove previous output">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean" description="Compile sources">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
               includeantruntime="false"/>
    </target>

    <target name="jar" depends="compile" description="Package the jar">
        <mkdir dir="${build.dir}/jar"/>
        <jar destfile="${build.dir}/jar/DemoApp.jar"
             basedir="${build.dir}/classes">
            <manifest>
                <attribute name="Main-Class" value="com.guru99.Main"/>
            </manifest>
        </jar>
    </target>

</project>

출력:

Buildfile: C:\projects\DemoApp\build.xml

clean:
   [delete] Deleting directory C:\projects\DemoApp\build

compile:
    [mkdir] Created dir: C:\projects\DemoApp\build\classes
    [javac] Compiling 3 source files to C:\projects\DemoApp\build\classes

jar:
    [mkdir] Created dir: C:\projects\DemoApp\build\jar
      [jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant vs Maven vs Gradle

세 가지 빌드 도구가 시장을 주도합니다. Java 각 생태계는 서로 다른 입장을 취하며, 어느 정도의 구조를 적용해야 하는지에 대해서도 각기 다른 견해를 갖고 있습니다.

매개 변수 아파치 개미 Apache Maven Gradle
빌드 스크립트 형식 XML XML Groovy 또는 코틀린 DSL
접근 절차적 접근 방식에서는 모든 단계를 직접 정의합니다. 선언적 방식, 설정보다는 관례를 따릅니다. 스크립트 확장 기능을 갖춘 선언적 방식
의존성 관리 기본적으로 내장된 기능이 아니며, Apache Ivy를 통해 추가되었습니다. 중앙 저장소를 사용하여 내장됨 내장형, Maven 호환
프로젝트 구조 완전 무료 고정 표준 레이아웃 관례에 기반하지만 재정의 가능함
증분 빌드 제한된 제한된 네, 빌드 캐시를 사용하면 됩니다.
학습 곡선 XML 사용자에게는 낮은 가격입니다. 보통 더 가파르며, DSL이 필요합니다.
적합한 기존 프로젝트 및 고도로 맞춤화된 빌드 Standard Java 프로젝트 대규모 다중 모듈 및 Android 프로젝트

빌드가 표준 레이아웃에 맞지 않거나 기존 프로젝트가 이미 수기로 작성된 목표에 의존하는 경우 Ant는 여전히 실용적인 선택입니다.

Apache Ant 사용의 모범 사례

다음은 Apache Ant 사용을 위한 몇 가지 모범 사례입니다.

  • 속성 파일을 사용하여 빌드 번호 지정을 자동화해야 합니다.
  • 기본 설정 파일과 빌드 속성 파일을 활용하여 구성 가능한 빌드를 구현하세요. 이러한 파일을 사용하면 컴파일러 버전 및 최적화 설정과 같은 빌드 프로세스에 필요한 데이터를 정의하는 속성을 저장할 수 있습니다.
  • 라이브러리 속성 파일을 사용하여 미리 빌드된 라이브러리를 재사용할 수 있습니다.
  • 모든 대상에 설명 속성을 부여하십시오. ant -projecthelp 빌드에 대한 유용한 요약 정보를 제공합니다.
  • 정리된 대상 파일을 별도로 보관하고, 소스 파일이 포함된 디렉터리는 절대 삭제하지 마십시오.

Apache Ant 사용의 장점

Apache Ant를 사용하면 다음과 같은 이점이 있습니다.

  • Ant는 플랫폼에 구애받지 않으므로 파일 구분 기호와 같은 플랫폼 중심적인 속성을 관리하는 데 도움이 됩니다.
  • Ant를 사용하면 'touch' 명령어를 이용해 파일의 수정 시간을 변경하는 등 플랫폼별 작업을 수행할 수 있습니다.
  • Ant 스크립트는 일반 언어로 작성됩니다. XML따라서 XML에 이미 익숙하다면 Ant도 빠르게 배울 수 있을 것입니다.
  • Ant는 미리 정의된 다양한 작업 목록을 제공합니다.
  • 개발자를 위한 인터페이스를 제공합니다.ping 맞춤형 작업.
  • Ant는 명령줄에서 쉽게 실행할 수 있으므로 무료 및 상용 IDE와 통합할 수 있습니다.
  • JVM만 있으면 되므로 JVM을 사용할 수 있는 곳이라면 어디에서든 실행됩니다.
  • Apache Ant는 사용자가 소스 코드에 액세스하고 이를 재현할 수 있는 오픈 소스 라이브러리입니다.
  • Apache Ant는 다양한 플랫폼을 지원하는 도구로, 이를 통해 Ant를 관리할 수 있습니다. Java 저렴한 방식으로 클래스 경로 및 파일 디렉토리 구조를 제공합니다.
  • Apache Ant는 다음을 사용하여 쉽게 확장할 수 있습니다. Java 및 기타 프로그래밍 언어.
  • Apache Ant는 EJB 컴파일 및 패키징과 같은 J2EE 개발을 위한 내장 지원 기능을 제공합니다.
  • 이 도구는 소규모 개인 프로젝트뿐만 아니라 대규모 소프트웨어 프로젝트나 웹사이트에도 사용할 수 있습니다.

Ant는 테스트 실행기 및 지속적 통합 서버와 함께 자주 사용됩니다. 자세한 내용은 다음을 참조하십시오. JUnit 테스트 레이어의 경우, Jenkins 예정된 빌드의 경우, Apache Ant를 사용하여 Selenium 브라우저 테스트 자동화를 위한 것입니다. 빌드 중에 생성된 보고서는 다음을 사용하여 렌더링할 수 있습니다. 재스퍼 리포트.

자주 묻는 질문

Ant는 Another Neat Tool의 약자입니다. 제임스 던컨 데이비슨은 2000년 7월 톰캣 빌드 작업을 하던 중 이 도구를 개발했고, 아파치 소프트웨어 개발팀에 기증했습니다. Foundation.

아니요, 하지만 Ant는 기본적으로 현재 디렉터리에서 build.xml 파일을 찾습니다. 명령줄에서 -f 또는 -buildfile 옵션을 사용하면 다른 파일 이름도 사용할 수 있습니다.

단독으로는 불가능합니다. Apache Ivy는 의존성 해결 기능을 추가하는 보조 프로젝트이며, Maven이 사용하는 것과 동일한 저장소에서 아티팩트를 다운로드할 수 있습니다.

Path 변수에 bin 폴더가 누락되었거나 ANT_HOME이 잘못된 디렉터리를 가리키고 있습니다. 변수를 편집한 후에는 새 명령 프롬프트 창을 여십시오. 기존 창에는 이전 값이 유지됩니다.

네, 표준 컴파일, JAR 및 테스트 대상에 모두 해당됩니다. 클래스 경로 항목과 includeantruntime 속성을 확인하세요. 생성된 파일에서 이러한 항목이 누락되어 혼란스러운 경고가 발생하는 경우가 많습니다.

네, 기존 시스템을 유지하는 데에는 그렇습니다. Java 기존 빌드를 저렴하게 마이그레이션할 수 없는 시스템입니다. 새 프로젝트는 일반적으로 Maven 또는 Gradle또한 AI 도구는 이러한 구조를 더욱 안정적으로 구축합니다.

이 게시물을 요약하면 다음과 같습니다.