Ant 퀵 가이드
ANT는 Another Neat Tool의 약자입니다. Apache의 Java 기반 빌드 도구입니다. Apache Ant에 대해 자세히 알아보기 전에 먼저 빌드 도구가 필요한 이유를 먼저 이해하겠습니다.
빌드 도구의 필요성
평균적으로 개발자는 다음과 같은 빌드 및 배포와 같은 일상적인 작업을 수행하는 데 상당한 시간을 소비합니다.
- 코드 컴파일
- 바이너리 패키징
- 바이너리를 테스트 서버에 배포
- 변경 사항 테스트
- 한 위치에서 다른 위치로 코드 복사
위의 작업을 자동화하고 단순화하려면 Apache Ant가 유용합니다. 명령 줄에서 실행할 수있는 운영 체제 빌드 및 배포 도구입니다.
Apache Ant의 역사
Ant는 James Duncan Davidson (Tomcat의 원저자)이 만들었습니다.
원래 Tomcat을 빌드하는 데 사용되었으며 Tomcat 배포의 일부로 번들로 제공되었습니다.
Ant는 Apache Make 도구와 관련된 문제와 복잡성에서 탄생했습니다.
Ant는 2000 년에 Apache에서 독립 프로젝트로 승격되었습니다. 2014 년 5 월 현재 Apache Ant의 최신 버전은 1.9.4입니다.
Apache Ant의 기능
Ant는 사용 가능한 가장 완벽한 Java 빌드 및 배포 도구입니다.
Ant는 플랫폼 중립적이며 파일 구분 기호와 같은 플랫폼 특정 속성을 처리 할 수 있습니다.
Ant는 'touch'명령을 사용하여 파일의 수정 시간을 수정하는 것과 같은 플랫폼 별 작업을 수행하는 데 사용할 수 있습니다.
Ant 스크립트는 일반 XML을 사용하여 작성됩니다. 이미 XML에 익숙하다면 Ant를 매우 빨리 배울 수 있습니다.
Ant는 복잡하고 반복적 인 작업을 자동화하는 데 능숙합니다.
Ant는 사전 정의 된 작업의 큰 목록과 함께 제공됩니다.
Ant는 사용자 정의 태스크를 개발하기위한 인터페이스를 제공합니다.
Ant는 명령 줄에서 쉽게 호출 할 수 있으며 무료 및 상용 IDE와 통합 할 수 있습니다.
Apache Ant Ant는 오픈 소스 이니셔티브에 의해 인증 된 완전한 오픈 소스 라이선스 인 Apache 소프트웨어 라이선스에 따라 배포됩니다.
전체 소스 코드, 클래스 파일 및 문서를 포함한 최신 Apache Ant 버전은 다음에서 찾을 수 있습니다. http://ant.apache.org.
Apache Ant 설치
컴퓨터에 JDK (Java Development Kit)를 이미 다운로드하여 설치했다고 가정합니다. 그렇지 않은 경우 여기 의 안내를 따르 세요 .
JAVA_HOME 환경 변수가 JDK가 설치된 폴더로 설정되어 있는지 확인하십시오.
바이너리 다운로드 http://ant.apache.org
편리한 위치 c : \ folder에 zip 파일의 압축을 풉니 다. Winzip, winRAR, 7-zip 또는 유사한 도구를 사용합니다.
라는 새 환경 변수를 만듭니다. ANT_HOME Ant 설치 폴더를 가리키는이 경우 c:\apache-ant-1.8.2-bin 폴더.
Apache Ant 배치 파일의 경로를 PATH 환경 변수에 추가하십시오. 우리의 경우 이것은c:\apache-ant-1.8.2-bin\bin 폴더.
Apache Ant 설치 확인
컴퓨터에 Apache Ant가 성공적으로 설치되었는지 확인하려면 명령 프롬프트에 ant를 입력하십시오.
다음과 유사한 출력이 표시되어야합니다.
C:\>ant -version
Apache Ant(TM) version 1.8.2 compiled on December 20 2010
위의 출력이 표시되지 않으면 설치 단계를 제대로 수행했는지 확인하십시오.
Eclipse 설치
이 튜토리얼은 또한 Ant와 Eclipse IDE의 통합을 다룹니다. 따라서 이미 Eclipse를 설치하지 않았다면 Eclipse를 다운로드하여 설치하십시오.
Eclipse를 설치하려면 :
www.eclipse.org 에서 최신 Eclipse 바이너리를 다운로드하십시오.
Eclipse 바이너리를 편리한 위치 (예 : c : \ folder)에 압축을 풉니 다.
c : \ eclipse \ eclipse.exe에서 Eclipse 실행
일반적으로 Ant의 빌드 파일은 build.xml프로젝트의 기본 디렉토리에 있어야합니다. 그러나 파일 이름이나 위치에는 제한이 없습니다. 다른 파일 이름을 사용하거나 다른 위치에 빌드 파일을 저장할 수 있습니다.
이 연습에서는 다음 내용이 포함 된 컴퓨터의 어느 위치 에나 build.xml이라는 파일을 만듭니다.
<?xml version="1.0"?>
<project name="Hello World Project" default="info">
<target name="info">
<echo>Hello World - Welcome to Apache Ant!</echo>
</target>
</project>
xml 선언 앞에는 빈 줄이나 공백이 없어야합니다. 허용하면 ant 빌드를 실행하는 동안 다음과 같은 오류 메시지가 발생합니다.
"[xX] [mM] [lL]"과 일치하는 처리 명령 대상은 허용되지 않습니다. 모든 빌드 파일에는project 요소 및 하나 이상의 target 요소.
XML 요소 project 세 가지 속성이 있습니다.
속성 | 기술 |
---|---|
이름 | 프로젝트의 이름입니다. (선택 과목) |
기본 | 빌드 스크립트의 기본 대상입니다. 프로젝트에는 여러 대상이 포함될 수 있습니다. 이 속성은 기본값으로 간주해야하는 대상을 지정합니다. (필수) |
기반 | 프로젝트의 기본 디렉토리 (또는) 루트 폴더입니다. (선택 과목) |
대상은 하나의 단위로 실행하려는 작업 모음입니다. 이 예에서는 사용자에게 정보 메시지를 제공하는 간단한 대상이 있습니다.
대상은 다른 대상에 대한 종속성을 가질 수 있습니다. 예를 들어,deploy 대상은 package 대상, package 대상은 compile타겟 등. 종속성은depends속성. 예를 들면 :
<target name="deploy" depends="package">
....
</target>
<target name="package" depends="clean,compile">
....
</target>
<target name="clean" >
....
</target>
<target name="compile" >
....
</target>
대상 요소에는 다음 속성이 있습니다.
속성 | 기술 |
---|---|
이름 | 대상 이름 (필수) |
의존하다 | 이 대상이 의존하는 모든 대상의 쉼표로 구분 된 목록입니다. (선택 과목) |
기술 | 대상에 대한 간단한 설명입니다. (선택 과목) |
만약 | 조건부 속성의 참에 따라 대상을 실행할 수 있습니다. (선택 과목) |
아니면 | 지정된 확장 점의 종속성 목록에 대상을 추가합니다. 확장 점은 대상과 유사하지만 작업이 없습니다. (선택 과목) |
그만큼 echo위의 예에서 task는 메시지를 출력하는 간단한 작업입니다. 이 예에서는 Hello World 메시지를 인쇄합니다 .
ant 빌드 파일을 실행하려면 명령 프롬프트를 열고 build.xml이있는 폴더로 이동 한 후 다음을 입력하십시오. ant info. 입력 할 수도 있습니다.ant대신. 둘 다 작동합니다.info빌드 파일의 기본 대상입니다. 다음 출력이 표시되어야합니다.
C:\>ant
Buildfile: C:\build.xml
info: [echo] Hello World - Welcome to Apache Ant!
BUILD SUCCESSFUL
Total time: 0 seconds
C:\>
Ant 빌드 파일은 XML로 작성되므로 선호하는 프로그래밍 언어 에서처럼 변수를 선언 할 수 없습니다. 그러나 상상할 수 있듯이 Ant가 프로젝트 이름, 프로젝트 소스 디렉토리 등과 같은 변수 선언을 허용하면 유용 할 것입니다.
Ant는 property속성을 지정할 수있는 요소입니다. 이를 통해 속성을 한 빌드에서 다른 빌드로 또는 한 환경에서 다른 환경으로 변경할 수 있습니다.
기본적으로 Ant는 빌드 파일에서 사용할 수있는 다음과 같은 사전 정의 된 특성을 제공합니다.
속성 | 기술 |
---|---|
ant.file | 빌드 파일의 전체 위치입니다. |
ant.version | Apache Ant 설치 버전입니다. |
기반 | 에 지정된 빌드의 기반 basedir 의 속성 project 요소. |
ant.java.version | Ant에서 사용하는 JDK 버전입니다. |
ant.project.name | 에 지정된 프로젝트 이름 name 의 atrribute project 요소. |
ant.project.default-target | 현재 프로젝트의 기본 대상입니다. |
ant.project.invoked-targets | 현재 프로젝트에서 호출 된 대상의 쉼표로 구분 된 목록입니다. |
ant.core.lib | Ant jar 파일의 전체 위치입니다. |
ant.home | Ant 설치의 홈 디렉토리입니다. |
ant.library.dir | Ant 라이브러리 파일의 홈 디렉토리-일반적으로 ANT_HOME / lib 폴더입니다. |
또한 Ant는 빌드 파일에 시스템 특성 (예 : file.separator)을 사용할 수 있도록합니다.
위의 것 외에도 사용자는 다음을 사용하여 추가 속성을 정의 할 수 있습니다. property요소. 다음 예제는라는 속성을 정의하는 방법을 보여줍니다.sitename:
<?xml version="1.0"?>
<project name="Hello World Project" default="info">
<property name="sitename" value="www.tutorialspoint.com"/>
<target name="info">
<echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
</target>
</project>
위의 빌드 파일에서 Ant를 실행하면 다음 출력이 생성됩니다.
C:\>ant
Buildfile: C:\build.xml
info: [echo] Apache Ant version is Apache Ant(TM) version 1.8.2
compiled on December 20 2010 - You are at www.tutorialspoint.com
BUILD SUCCESSFUL
Total time: 0 seconds
C:\>
소수의 속성으로 작업하는 경우 빌드 파일에서 직접 속성을 설정하는 것이 좋습니다. 그러나 대규모 프로젝트의 경우 속성을 별도의 속성 파일에 저장하는 것이 좋습니다.
속성을 별도의 파일에 저장하면 다음과 같은 이점이 있습니다.
다른 실행 환경에 대해 다른 속성 설정을 사용하여 동일한 빌드 파일을 재사용 할 수 있습니다. 예를 들어 빌드 속성 파일은 DEV, TEST 및 PROD 환경에 대해 별도로 유지 관리 할 수 있습니다.
특정 환경의 속성 값을 미리 알지 못하는 경우 유용합니다. 이를 통해 속성 값이 알려진 다른 환경에서 빌드를 수행 할 수 있습니다.
엄격하고 빠른 규칙은 없지만 일반적으로 속성 파일의 이름은 build.properties 옆에 배치됩니다 build.xml파일. 배포 환경에 따라 여러 빌드 속성 파일을 만들 수 있습니다.build.properties.dev 과 build.properties.test.
빌드 속성 파일의 내용은 일반 Java 속성 파일과 유사합니다. 한 줄에 하나의 속성을 포함합니다. 각 속성은 이름과 값 쌍으로 표시됩니다. 이름 및 값 쌍은 등호 (=) 기호로 구분됩니다. 속성에 적절한 주석을 달도록 적극 권장합니다. 주석은 해시 (#) 문자를 사용하여 나열됩니다.
다음 예는 build.xml 파일 및 관련 build.properties 파일:
build.xml
<?xml version="1.0"?>
<project name="Hello World Project" default="info">
<property file="build.properties"/>
<target name="info">
<echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
</target>
</project>
build.properties
# The Site Name
sitename=www.tutorialspoint.com
buildversion=3.3.2
위의 예에서 sitename웹 사이트 이름에 매핑되는 사용자 지정 속성입니다. 이 방식으로 원하는 수의 사용자 지정 속성을 선언 할 수 있습니다. 위의 예에 나열된 또 다른 사용자 지정 속성은buildversion이 경우 빌드의 버전을 나타냅니다.
위의 것 외에도 Ant에는 이전 섹션에 나열되었지만 아래에 다시 한 번 표시되는 사전 정의 된 빌드 속성이 많이 있습니다.
속성 | 기술 |
---|---|
ant.file | 빌드 파일의 전체 위치입니다. |
ant.version | Apache Ant 설치 버전입니다. |
기반 | 에 지정된 빌드의 기반 basedir 의 속성 project 요소. |
ant.java.version | Ant에서 사용하는 JDK 버전입니다. |
ant.project.name | 에 지정된 프로젝트 이름 name 의 atrribute project 요소. |
ant.project.default-target | 현재 프로젝트의 기본 대상입니다. |
ant.project.invoked-targets | 현재 프로젝트에서 호출 된 대상의 쉼표로 구분 된 목록입니다. |
ant.core.lib | Ant jar 파일의 전체 위치입니다. |
ant.home | Ant 설치의 홈 디렉토리입니다. |
ant.library.dir | Ant 라이브러리 파일의 홈 디렉토리-일반적으로 ANT_HOME / lib 폴더입니다. |
이 장에 제시된 예는 ant.version 내장 속성.
Ant는 사전 정의 된 여러 데이터 유형을 제공합니다. "데이터 유형"이라는 용어를 프로그래밍 언어에서 사용할 수있는 것과 혼동하지 말고 대신 이미 제품에 내장 된 서비스 세트로 간주하십시오.
다음 데이터 유형은 Apache Ant에서 제공합니다.
파일 세트
파일 세트 데이터 유형은 파일 모음을 나타냅니다. 특정 패턴과 일치하는 파일을 포함하거나 제외하기위한 필터로 사용됩니다.
예를 들어, 다음 코드를 참조하십시오. 여기에서 src 속성은 프로젝트의 소스 폴더를 가리 킵니다.
파일 세트는 'Stub'이라는 단어가 포함 된 파일을 제외하고 소스 폴더의 모든 .java 파일을 선택합니다. 대소 문자 구분 필터가 파일 세트에 적용됩니다. 이는 이름이 Samplestub.java 인 파일이 파일 세트에서 제외되지 않음을 의미합니다.
<fileset dir="${src}" casesensitive="yes">
<include name="**/*.java"/>
<exclude name="**/*Stub*"/>
</fileset>
패턴 세트
패턴 세트는 특정 패턴을 기반으로 파일 또는 폴더를 쉽게 필터링 할 수있는 패턴입니다. 다음 메타 문자를 사용하여 패턴을 만들 수 있습니다.
? -한 문자 만 일치합니다.
* -0 개 이상의 문자와 일치합니다.
** -0 개 또는 많은 디렉터리를 재귀 적으로 일치시킵니다.
다음 예제는 패턴 세트의 사용법을 보여줍니다.
<patternset id="java.files.without.stubs">
<include name="src/**/*.java"/>
<exclude name="src/**/*Stub*"/>
</patternset>
그런 다음 패턴 세트를 다음과 같이 파일 세트와 함께 재사용 할 수 있습니다.
<fileset dir="${src}" casesensitive="yes">
<patternset refid="java.files.without.stubs"/>
</fileset>
파일 목록
파일 목록 데이터 유형은 다음 차이점을 제외하고 파일 세트와 유사합니다.
filelist는 명시 적으로 명명 된 파일 목록을 포함하며 와일드 카드를 지원하지 않습니다.
filelist 데이터 유형은 기존 또는 존재하지 않는 파일에 적용 할 수 있습니다.
파일 목록 데이터 유형의 다음 예를 살펴 보겠습니다. 여기에서 속성webapp.src.folder 프로젝트의 웹 애플리케이션 소스 폴더를 가리 킵니다.
<filelist id="config.files" dir="${webapp.src.folder}">
<file name="applicationConfig.xml"/>
<file name="faces-config.xml"/>
<file name="web.xml"/>
<file name="portlet.xml"/>
</filelist>
필터 세트
복사 작업과 함께 filterset 데이터 유형을 사용하면 패턴과 일치하는 모든 파일의 특정 텍스트를 대체 값으로 바꿀 수 있습니다.
일반적인 예는 다음 코드와 같이 릴리스 정보 파일에 버전 번호를 추가하는 것입니다.
<copy todir="${output.dir}">
<fileset dir="${releasenotes.dir}" includes="**/*.txt"/> <filterset> <filter token="VERSION" value="${current.version}"/>
</filterset>
</copy>
이 강령에서 :
속성 output.dir 프로젝트의 출력 폴더를 가리 킵니다.
속성 releasenotes.dir 프로젝트의 릴리스 정보 폴더를 가리 킵니다.
속성 current.version 프로젝트의 현재 버전 폴더를 가리 킵니다.
이름에서 알 수 있듯이 복사 작업은 한 위치에서 다른 위치로 파일을 복사하는 데 사용됩니다.
통로
그만큼 path데이터 유형은 일반적으로 클래스 경로를 나타내는 데 사용됩니다. 경로의 항목은 세미콜론 또는 콜론을 사용하여 구분됩니다. 그러나 이러한 문자는 실행시 실행 시스템의 경로 구분 문자로 대체됩니다.
클래스 경로는 아래 예제와 같이 프로젝트의 jar 파일 및 클래스 목록으로 설정됩니다.
<path id="build.classpath.jar">
<pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
이 코드에서 :
속성 env.J2EE_HOME 환경 변수를 가리킴 J2EE_HOME.
속성 j2ee.jar J2EE 기본 폴더에있는 J2EE jar 파일의 이름을 가리 킵니다.
Ant의 데이터 유형에 대해 배웠으므로 이제 그 지식을 실행에 옮겨야합니다. 이 장에서 프로젝트를 구축 할 것입니다. 이 장의 목적은 Java 클래스를 컴파일하여 WEB-INF \ classes 폴더에 배치하는 Ant 파일을 빌드하는 것입니다.
다음 프로젝트 구조를 고려하십시오.
데이터베이스 스크립트는 db 폴더.
자바 소스 코드는 src 폴더.
이미지, js, META-INF, 스타일 (css)은 war 폴더.
JSP는 jsp 폴더.
타사 jar 파일은 lib 폴더.
Java 클래스 파일은 WEB-INF\classes 폴더.
이 프로젝트는 Hello World 이 자습서의 나머지 부분을위한 팩스 응용 프로그램입니다.
C:\work\FaxWebApplication>tree
Folder PATH listing
Volume serial number is 00740061 EC1C:ADB1
C:.
+---db
+---src
. +---faxapp
. +---dao
. +---entity
. +---util
. +---web
+---war
+---images
+---js
+---META-INF
+---styles
+---WEB-INF
+---classes
+---jsp
+---lib
이 프로젝트에 필요한 build.xml은 다음과 같습니다. 그것을 하나씩 고려해 봅시다.
<?xml version="1.0"?>
<project name="fax" basedir="." default="build">
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/> <property name="name" value="fax"/> <path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/> </path> <target name="build" description="Compile source tree java files"> <mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.5" target="1.5"> <src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
</project>
먼저 소스, 웹 및 빌드 폴더에 대한 몇 가지 속성을 선언하겠습니다.
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
이 예에서 :
src.dir Java 소스 파일을 찾을 수있는 프로젝트의 소스 폴더를 나타냅니다.
web.dir JSP, web.xml, css, javascript 및 기타 웹 관련 파일을 찾을 수있는 프로젝트의 웹 소스 폴더를 나타냅니다.
build.dir 프로젝트 컴파일의 출력 폴더를 나타냅니다.
속성은 다른 속성을 참조 할 수 있습니다. 위의 예에서 볼 수 있듯이build.dir 속성은 web.dir 특성.
이 예에서 src.dir 프로젝트의 소스 폴더를 나타냅니다.
우리 프로젝트의 기본 대상은 compile표적. 하지만 먼저clean 표적.
이름에서 알 수 있듯이 깨끗한 대상은 빌드 폴더의 파일을 삭제합니다.
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
마스터 클래스 경로는 클래스 경로 정보를 보유합니다. 이 경우 빌드 폴더의 클래스와 lib 폴더의 jar 파일이 포함됩니다.
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>
마지막으로 파일을 빌드 할 빌드 대상입니다. 우선 빌드 디렉토리가 존재하지 않는 경우 생성합니다. 그런 다음 javac 명령을 실행합니다 (대상 컴파일로 jdk1.5 지정). javac 작업에 대한 소스 폴더와 클래스 경로를 제공하고 빌드 폴더에 클래스 파일을 드롭하도록 요청합니다.
<target name="build" description="Compile main source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> <src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target>
이 파일에서 Ant를 실행하면 Java 소스 파일이 컴파일되고 빌드 폴더에 클래스가 배치됩니다.
다음 결과는 Ant 파일을 실행 한 결과입니다.
C:\>ant
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 6.3 seconds
파일이 컴파일되고 build.dir 폴더.
문서는 모든 프로젝트에서 필수입니다. 문서는 프로젝트를 유지하는 데 큰 역할을합니다. Java는 내장 된javadoc수단. Ant는 필요에 따라 문서를 생성하여 훨씬 쉽게 만듭니다.
아시다시피 javadoc 도구는 매우 유연하며 다양한 구성 옵션을 허용합니다. Ant는 javadoc 태스크를 통해 이러한 구성 옵션을 노출합니다. javadocs에 익숙하지 않은 경우이 Java Documentation Tutorial로 시작하는 것이 좋습니다 .
다음 섹션은 Ant에서 사용되는 가장 일반적으로 사용되는 javadoc 옵션을 나열합니다.
속성
소스는 다음을 사용하여 지정할 수 있습니다. sourcepath, sourcepathref 또는 sourcefiles.
sourcepath 소스 파일 (예 : src 폴더)의 폴더를 가리키는 데 사용됩니다.
sourcepathref 경로 속성 (예 : delegates.src.dir)에서 참조하는 경로를 참조하는 데 사용됩니다.
sourcefiles 개별 파일을 쉼표로 구분 된 목록으로 지정하려는 경우 사용됩니다.
대상 경로는 destdir 폴더 (예 : build.dir).
당신은 필터링 할 수 있습니다 javadoc포함 할 패키지 이름을 지정하여 작업. 이것은packagenames 속성, 쉼표로 구분 된 패키지 파일 목록입니다.
공용, 개인, 패키지 또는 보호 된 클래스와 멤버 만 표시하도록 javadoc 프로세스를 필터링 할 수 있습니다. 이것은private, public, package 과 protected 속성.
각 속성을 사용하여 작성자 및 버전 정보를 포함하도록 javadoc 태스크에 지시 할 수도 있습니다.
다음을 사용하여 패키지를 함께 그룹화 할 수도 있습니다. group 탐색이 쉬워집니다.
함께 모아서
우리의 주제를 계속합시다 Hello world팩스 신청. 팩스 애플리케이션 프로젝트에 문서 대상을 추가하겠습니다.
다음은 프로젝트에서 사용 된 javadoc 작업의 예입니다. 이 예에서는 다음을 사용하도록 javadoc을 지정했습니다.src.dir 소스 디렉토리로 doc 목표로.
또한 Java 문서 페이지에 나타나는 창 제목, 머리글 및 바닥 글 정보를 사용자 지정했습니다.
또한 세 그룹을 만들었습니다.
- 하나는 소스 폴더의 유틸리티 클래스 용입니다.
- 하나는 사용자 인터페이스 클래스 용입니다.
- 하나는 데이터베이스 관련 클래스 용입니다.
데이터 패키지 그룹에 faxapp.entity 및 faxapp.dao 패키지가 있음을 알 수 있습니다.
<target name="generate-javadoc">
<javadoc packagenames="faxapp.*" sourcepath="${src.dir}"
destdir="doc" version="true" windowtitle="Fax Application">
<doctitle><![CDATA[= Fax Application =]]></doctitle>
<bottom>
<![CDATA[Copyright © 2011. All Rights Reserved.]]>
</bottom>
<group title="util packages" packages="faxapp.util.*"/>
<group title="web packages" packages="faxapp.web.*"/>
<group title="data packages"
packages="faxapp.entity.*:faxapp.dao.*"/>
</javadoc>
<echo message="java doc has been generated!" />
</target>
javadoc Ant 태스크를 실행 해 보겠습니다. Java 문서 파일을 생성하고 doc 폴더에 배치합니다.
때 javadoc target 실행되면 다음과 같은 결과가 생성됩니다.
C:\>ant generate-javadoc
Buildfile: C:\build.xml
java doc has been generated!
BUILD SUCCESSFUL
Total time: 10.63 second
Java 문서 파일은 이제 doc 폴더.
일반적으로 javadoc 파일은 릴리스 또는 패키지 대상의 일부로 생성됩니다.
자바 소스 파일을 컴파일 한 후 다음 논리적 단계는 자바 아카이브, 즉 JAR 파일을 빌드하는 것입니다. Ant로 JAR 파일을 만드는 것은jar직무. jar 태스크의 일반적으로 사용되는 속성은 다음과 같습니다.
속성 | 기술 |
---|---|
기반 | 출력 JAR 파일의 기본 디렉토리입니다. 기본적으로 이것은 프로젝트의 기본 디렉토리로 설정됩니다. |
압박 붕대 | Ant가 JAR 파일을 작성할 때 파일을 압축하도록 권장합니다. |
압축 유지 | 동안 compress 속성은 개별 파일에 적용 할 수 있습니다. keepcompression 속성은 동일한 작업을 수행하지만 전체 아카이브에 적용됩니다. |
파괴하다 | 출력 JAR 파일의 이름입니다. |
복제 | 중복 파일이 발견 될 때 수행 할 작업에 대해 Ant에 조언합니다. 중복 파일을 추가, 보존 또는 실패 할 수 있습니다. |
제외하다 | 패키지에 이러한 쉼표로 구분 된 파일 목록을 포함하지 않도록 Ant에 권고합니다. |
excludesfile | 제외 파일이 패턴을 사용하여 지정된다는 점을 제외하면 위와 동일합니다. |
포함 | 제외의 역. |
includefile | excludesfile의 반대입니다. |
최신 정보 | 이미 빌드 된 JAR 파일의 파일을 겹쳐 쓰도록 Ant에 권고합니다. |
계속 우리 Hello World팩스 응용 프로그램 프로젝트, jar 파일을 생성 할 새 대상을 추가하겠습니다. 그러나 그 전에 아래 주어진 jar 작업을 고려해 보겠습니다.
<jar destfile="${web.dir}/lib/util.jar"
basedir="${build.dir}/classes"
includes="faxapp/util/**"
excludes="**/Test.class"
/>
여기, web.dir속성은 웹 소스 파일의 경로를 가리 킵니다. 우리의 경우 여기에 util.jar가 배치됩니다.
그만큼 build.dir 이 예제의 속성은 util.jar의 클래스 파일을 찾을 수있는 빌드 폴더를 가리 킵니다.
이 예에서는 다음과 같은 jar 파일을 만듭니다. util.jar 클래스를 사용하여 faxapp.util.*꾸러미. 그러나 Test라는 이름으로 끝나는 클래스는 제외됩니다. 출력 jar 파일은 웹 애플리케이션 lib 폴더에 배치됩니다.
util.jar을 실행 가능한 jar 파일로 만들려면 다음을 추가해야합니다. manifest 와 더불어 Main-Class 메타 속성.
따라서 위의 예는 다음과 같이 업데이트됩니다.
<jar destfile="${web.dir}/lib/util.jar"
basedir="${build.dir}/classes"
includes="faxapp/util/**"
excludes="**/Test.class">
<manifest>
<attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
</manifest>
</jar>
jar 작업을 실행하려면 대상 (가장 일반적으로 빌드 또는 패키지 대상)에이를 래핑하고 실행합니다.
<target name="build-jar">
<jar destfile="${web.dir}/lib/util.jar"
basedir="${build.dir}/classes"
includes="faxapp/util/**"
excludes="**/Test.class">
<manifest>
<attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
</manifest>
</jar>
</target>
이 파일에서 Ant를 실행하면 util.jar 파일이 생성됩니다.
다음 결과는 Ant 파일을 실행 한 결과입니다.
C:\>ant build-jar
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 1.3 seconds
이제 util.jar 파일이 출력 폴더에 있습니다.
Ant로 WAR 파일을 생성하는 것은 매우 간단하며 JAR 파일 생성 작업과 매우 유사합니다. 결국 JAR 파일과 같은 WAR 파일은 또 다른 ZIP 파일입니다.
WAR 태스크는 JAR 태스크의 확장이지만 WEB-INF / classes 폴더에 들어가는 내용을 조작하고 web.xml 파일을 생성하는 몇 가지 멋진 추가 기능이 있습니다. WAR 태스크는 WAR 파일의 특정 레이아웃을 지정하는 데 유용합니다.
WAR 태스크는 JAR 태스크의 확장이므로 JAR 태스크의 모든 속성이 WAR 태스크에 적용됩니다.
속성 | 기술 |
---|---|
webxml | web.xml 파일 경로 |
lib | WEB-INF \ lib 폴더에 들어갈 내용을 지정하는 그룹입니다. |
클래스 | WEB-INF \ classes 폴더에 들어갈 항목을 지정하는 그룹입니다. |
메타 인프 | MANIFEST.MF 파일 생성 지침을 지정합니다. |
계속 우리 Hello World팩스 응용 프로그램 프로젝트, jar 파일을 생성 할 새 대상을 추가하겠습니다. 그러나 그 전에 전쟁 과제를 고려해 보겠습니다. 다음 예를 고려하십시오.
<war destfile="fax.war" webxml="${web.dir}/web.xml">
<fileset dir="${web.dir}/WebContent"> <include name="**/*.*"/> </fileset> <lib dir="thirdpartyjars"> <exclude name="portlet.jar"/> </lib> <classes dir="${build.dir}/web"/>
</war>
이전 예에 따라 web.dir 변수는 소스 웹 폴더, 즉 JSP, css, javascript 파일 등을 포함하는 폴더를 나타냅니다.
그만큼 build.dir변수는 출력 폴더를 참조합니다.-여기에서 WAR 패키지의 클래스를 찾을 수 있습니다. 일반적으로 클래스는 WAR 파일의 WEB-INF / classes 폴더에 번들로 제공됩니다.
이 예에서는 fax.war라는 war 파일을 만듭니다. WEB.XML 파일은 웹 소스 폴더에서 가져옵니다. 웹 아래의 'WebContent'폴더에있는 모든 파일이 WAR 파일로 복사됩니다.
WEB-INF / lib 폴더는 thirdpartyjars 폴더의 jar 파일로 채워집니다. 그러나 portlet.jar는 이미 애플리케이션 서버의 lib 폴더에 있으므로 제외합니다. 마지막으로 빌드 디렉토리의 웹 폴더에서 모든 클래스를 복사하여 WEB-INF / classes 폴더에 넣습니다.
Ant 대상 (일반적으로 패키지) 안에 전쟁 태스크를 래핑하고 실행합니다. 이렇게하면 지정된 위치에 WAR 파일이 생성됩니다.
클래스, lib, metainf 및 webinf 디렉터를 중첩하여 프로젝트 구조의 모든 위치에 흩어져있는 폴더에 상주 할 수 있습니다. 그러나 우수 사례는 웹 프로젝트가 WAR 파일의 구조와 유사한 웹 컨텐츠 구조를 가져야한다는 것을 제안합니다. 팩스 응용 프로그램 프로젝트는이 기본 원칙을 사용하여 개요 된 구조를 가지고 있습니다.
전쟁 작업을 실행하려면 대상 (가장 일반적으로 빌드 또는 패키지 대상)에이를 래핑하고 실행합니다.
<target name="build-war">
<war destfile="fax.war" webxml="${web.dir}/web.xml"> <fileset dir="${web.dir}/WebContent">
<include name="**/*.*"/>
</fileset>
<lib dir="thirdpartyjars">
<exclude name="portlet.jar"/>
</lib>
<classes dir="${build.dir}/web"/>
</war>
</target>
이 파일에서 Ant를 실행하면 fax.war 우리를 위해 파일.
다음 결과는 Ant 파일을 실행 한 결과입니다.
C:\>ant build-war
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 12.3 seconds
이제 fax.war 파일이 출력 폴더에 저장됩니다. war 파일의 내용은 다음과 같습니다.
fax.war:
+---jsp This folder contains the jsp files
+---css This folder contains the stylesheet files
+---js This folder contains the javascript files
+---images This folder contains the image files
+---META-INF This folder contains the Manifest.Mf
+---WEB-INF
+---classes This folder contains the compiled classes
+---lib Third party libraries and the utility jar files
WEB.xml Configuration file that defines the WAR package
우리는 Ant의 다양한 측면을 Hello World 웹 응용 프로그램을 조금씩 팩스로 보내십시오.
이제 완전하고 완전한 build.xml 파일을 만들기 위해 모든 것을 모아야 할 때입니다. 중히 여기다build.properties 과 build.xml 다음과 같이 파일 :
build.properties
deploy.path=c:\tomcat6\webapps
build.xml
<?xml version="1.0"?>
<project name="fax" basedir="." default="usage">
<property file="build.properties"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="javadoc.dir" value="doc"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="fax"/>
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/>
</path>
<target name="javadoc">
<javadoc packagenames="faxapp.*" sourcepath="${src.dir}" destdir="doc" version="true" windowtitle="Fax Application"> <doctitle><![CDATA[<h1>= Fax Application =</h1>]]> </doctitle> <bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]> </bottom> <group title="util packages" packages="faxapp.util.*"/> <group title="web packages" packages="faxapp.web.*"/> <group title="data packages" packages="faxapp.entity.*:faxapp.dao.*"/> </javadoc> </target> <target name="usage"> <echo message=""/> <echo message="${name} build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="deploy --> Deploy application as directory"/>
<echo message="deploywar --> Deploy application as a WAR file"/>
<echo message=""/>
</target>
<target name="build" description="Compile main
source tree java files">
<mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5"
target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}"/> <classpath refid="master-classpath"/> </javac> </target> <target name="deploy" depends="build" description="Deploy application"> <copy todir="${deploy.path}/${name}" preservelastmodified="true"> <fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</copy>
</target>
<target name="deploywar" depends="build"
description="Deploy application as a WAR file">
<war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}"> <include name="**/*.*"/> </fileset> </war> <copy todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
</project>
이 예에서 :
먼저 빌드 속성 파일에서 Tomcat의 webapps 폴더 경로를 다음과 같이 선언합니다. deploy.path 변하기 쉬운.
또한 Java 파일의 소스 폴더를 src.dir 변하기 쉬운.
그런 다음 웹 파일의 소스 폴더를 web.dir 변하기 쉬운. javadoc.dir Java 문서를 저장하기위한 폴더입니다. build.dir 빌드 출력 파일을 저장하기위한 경로입니다.
그런 다음 웹 애플리케이션의 이름을 선언합니다. fax 우리의 경우.
또한 프로젝트의 WEB-INF / lib 폴더에있는 JAR 파일을 포함하는 마스터 클래스 경로를 정의합니다.
우리는 또한 build.dir 마스터 클래스 경로에서.
Javadoc 대상은 프로젝트에 필요한 javadoc을 생성하고 사용 대상은 빌드 파일에있는 공통 대상을 인쇄하는 데 사용됩니다.
위의 예는 두 가지 배포 대상을 보여줍니다. deploy 과 deploywar.
배포 대상은 마지막으로 수정 된 날짜 타임 스탬프를 유지하면서 웹 디렉터리에서 배포 디렉터리로 파일을 복사합니다. 이는 핫 배포를 지원하는 서버에 배포 할 때 유용합니다.
정리 대상은 이전에 빌드 된 모든 파일을 지 웁니다.
deploywar 대상은 war 파일을 빌드 한 다음 war 파일을 애플리케이션 서버의 배포 디렉토리에 복사합니다.
이전 장에서 응용 프로그램을 패키징하고 폴더에 배포하는 방법을 배웠습니다.
이 장에서는 웹 응용 프로그램을 응용 프로그램 서버 배포 폴더에 직접 배포 한 다음 몇 가지 Ant 대상을 추가하여 서비스를 시작하고 중지 할 것입니다. 계속해서Hello World팩스 웹 애플리케이션. 이것은 이전 장의 연속이며 새 구성 요소는 굵게 강조 표시됩니다 .
build.properties
# Ant properties for building the springapp
appserver.home=c:\\install\\apache-tomcat-7.0.19
# for Tomcat 5 use $appserver.home}/server/lib
# for Tomcat 6 use $appserver.home}/lib appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
tomcat.manager.url=http://www.tutorialspoint.com:8080/manager
tomcat.manager.username=tutorialspoint
tomcat.manager.password=secret
build.xml
<?xml version="1.0"?>
<project name="fax" basedir="." default="usage">
<property file="build.properties"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="javadoc.dir" value="doc"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="fax"/>
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/>
</path>
<target name="javadoc">
<javadoc packagenames="faxapp.*" sourcepath="${src.dir}" destdir="doc" version="true" windowtitle="Fax Application"> <doctitle><![CDATA[<h1>= Fax Application =</h1>]]></doctitle> <bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]></bottom> <group title="util packages" packages="faxapp.util.*"/> <group title="web packages" packages="faxapp.web.*"/> <group title="data packages" packages="faxapp.entity.*:faxapp.dao.*"/> </javadoc> </target> <target name="usage"> <echo message=""/> <echo message="${name} build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="deploy --> Deploy application as directory"/>
<echo message="deploywar --> Deploy application as a WAR file"/>
<echo message=""/>
</target>
<target name="build" description="Compile main
source tree java files">
<mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}"/> <classpath refid="master-classpath"/> </javac> </target> <target name="deploy" depends="build" description="Deploy application"> <copy todir="${deploy.path}/${name}" preservelastmodified="true"> <fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</copy>
</target>
<target name="deploywar" depends="build"
description="Deploy application as a WAR file">
<war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}"> <include name="**/*.*"/> </fileset> </war> <copy todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
<!-- ============================================================ -->
<!-- Tomcat tasks -->
<!-- ============================================================ -->
<path id="catalina-ant-classpath">
<!-- We need the Catalina jars for Tomcat -->
<!-- * for other app servers - check the docs -->
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<target name="reload" description="Reload application in Tomcat">
<reload url="${tomcat.manager.url}"username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${name}"/>
</target>
</project>
이 예에서는 응용 프로그램 서버로 Tomcat을 사용했습니다. 먼저 빌드 속성 파일에서 몇 가지 추가 속성을 정의했습니다.
그만큼 appserver.home Tomcat 애플리케이션 서버의 설치 경로를 가리 킵니다.
그만큼 appserver.lib Tomcat 설치 폴더의 라이브러리 파일을 가리 킵니다.
그만큼 deploy.path 변수는 이제 Tomcat의 webapp 폴더를 가리 킵니다.
Tomcat의 애플리케이션은 Tomcat 관리자 애플리케이션을 사용하여 중지하고 시작할 수 있습니다. 관리자 애플리케이션의 URL, 사용자 이름 및 비밀번호도 build.properties 파일에 지정됩니다. 다음으로, 우리는 다음을 포함하는 새로운 CLASSPATH를 선언합니다.catalina-ant.jar. 이 jar 파일은 Apache Ant를 통해 Tomcat 태스크를 실행하는 데 필요합니다.
catalina-ant.jar는 다음 태스크를 제공합니다.
속성 | 기술 |
---|---|
InstallTask | 웹 애플리케이션을 설치합니다. 클래스 이름 : org.apache.catalina.ant.InstallTask |
ReloadTask | 웹 애플리케이션을 다시로드하십시오. 클래스 이름 : org.apache.catalina.ant.ReloadTask |
ListTask | 모든 웹 애플리케이션을 나열합니다. 클래스 이름 : org.apache.catalina.ant.ListTask |
StartTask | 웹 애플리케이션을 시작합니다. 클래스 이름 : org.apache.catalina.ant.StartTask |
StopTask | 웹 애플리케이션을 중지합니다. 클래스 이름 : org.apache.catalina.ant.StopTask |
ReloadTask | 중지하지 않고 웹 애플리케이션을 다시로드합니다. 클래스 이름 : org.apache.catalina.ant.ReloadTask |
다시로드 작업에는 다음과 같은 추가 매개 변수가 필요합니다.
- 관리자 애플리케이션에 대한 URL
- 웹 애플리케이션을 다시 시작하기위한 사용자 이름
- 웹 애플리케이션을 다시 시작하기위한 비밀번호
- 다시 시작할 웹 응용 프로그램의 이름
우리가 발행하자 deploy-war명령을 사용하여 웹 애플리케이션을 Tomcat webapps 폴더에 복사 한 다음 팩스 웹 애플리케이션을 다시로드하겠습니다. 다음 결과는 Ant 파일을 실행 한 결과입니다.
C:\>ant deploy-war
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 6.3 seconds
C:\>ant reload
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 3.1 seconds
위 작업이 실행되면 웹 응용 프로그램이 배포되고 웹 응용 프로그램이 다시로드됩니다.
Ant를 사용하여 Java 코드를 실행할 수 있습니다. 다음 예제에서 java 클래스는 인수 (관리자의 이메일 주소)를 받아 이메일을 보냅니다.
public class NotifyAdministrator
{
public static void main(String[] args)
{
String email = args[0];
notifyAdministratorviaEmail(email);
System.out.println("Administrator "+email+" has been notified");
}
public static void notifyAdministratorviaEmail(String email
{
//......
}
}
다음은이 Java 클래스를 실행하는 간단한 빌드입니다.
<?xml version="1.0"?>
<project name="sample" basedir="." default="notify">
<target name="notify">
<java fork="true" failonerror="yes" classname="NotifyAdministrator">
<arg line="[email protected]"/>
</java>
</target>
</project>
빌드가 실행되면 다음과 같은 결과가 생성됩니다.
C:\>ant
Buildfile: C:\build.xml
notify: [java] Administrator [email protected] has been notified
BUILD SUCCESSFUL
Total time: 1 second
이 예제에서 자바 코드는 이메일을 보내는 간단한 작업을 수행합니다. 이를 위해 Ant 태스크에 내장 된 것을 사용할 수있었습니다. 그러나 이제 아이디어를 얻었으므로 빌드 파일을 확장하여 복잡한 작업을 수행하는 Java 코드를 호출 할 수 있습니다 (예 : 소스 코드 암호화).
이미 Eclipse를 다운로드하여 설치했다면 시작하기 위해 할 일이 거의 없습니다. Eclipse는 바로 사용할 수있는 Ant 플러그인과 함께 미리 번들로 제공됩니다.
간단한 단계를 따라 Ant를 Eclipse에 통합하십시오.
build.xml이 Java 프로젝트의 일부이고 프로젝트 외부 위치에 있지 않은지 확인하십시오.
다음을 수행하여 Ant View 활성화 Window > Show View > Other > Ant > Ant.
프로젝트 탐색기를 열고 build.xml을 Ant보기로 끌어 오십시오.
Ant보기는 다음과 유사합니다.
대상을 클릭하고 빌드 / 정리 / 사용하면 대상과 함께 Ant가 실행됩니다.
"팩스"를 클릭하면 기본 대상이 실행됩니다. usage.
Ant Eclipse 플러그인에는 build.xml 파일 편집을위한 훌륭한 편집기도 함께 제공됩니다. 편집기는 build.xml 스키마를 알고 있으며 코드 완성을 지원할 수 있습니다.
Ant 편집기를 사용하려면 프로젝트 탐색기에서 build.xml을 마우스 오른쪽 단추로 클릭하고 연결 프로그램> Ant 편집기를 선택하십시오. Ant 편집기는 다음과 유사해야합니다.
Ant 편집기는 오른쪽에 대상을 나열합니다. 대상 목록은 특정 대상 편집으로 바로 이동할 수있는 책갈피 역할을합니다.
JUnit은 Java 기반 개발을 위해 일반적으로 사용되는 단위 테스트 프레임 워크입니다. 사용하기 쉽고 확장하기 쉽습니다. 사용 가능한 여러 JUnit 확장이 있습니다. JUnit에 익숙하지 않은 경우 www.junit.org 에서 다운로드 하여 설명서를 읽어야합니다.
이 장에서는 Ant를 사용하여 JUnit 테스트를 실행하는 방법을 보여줍니다. Ant는 JUnit 작업을 통해 간단하게 처리합니다.
JUnit 태스크의 속성은 다음과 같습니다.
속성 | 기술 |
---|---|
dir | VM을 호출 할 위치입니다. 이것은 다음과 같은 경우 무시됩니다.fork 비활성화됩니다. |
jvm | JVM을 호출하는 데 사용되는 명령입니다. 이것은 다음과 같은 경우 무시됩니다.fork 비활성화됩니다. |
포크 | 별도의 JVM에서 테스트를 실행합니다. |
errorproperty | JUnit 오류가있는 경우 설정할 특성의 이름 |
실패 속성 | JUnit 오류가있는 경우 설정할 특성의 이름 |
Haltonerror | 테스트 오류 발생시 실행 중지 |
할튼 실패 | 장애 발생시 실행 중지 |
printsummary | Ant에게 각 테스트에 대한 간단한 통계를 표시하도록 조언합니다. |
showoutput | Ant에 출력을 로그 및 포맷터로 보내도록 권고합니다. |
tempdir | Ant가 사용할 임시 파일의 경로 |
타임 아웃 | 이 설정 (밀리 초)보다 실행하는 데 더 오래 걸리는 테스트를 종료합니다. |
의 주제를 계속합시다 Hello World 웹 애플리케이션을 팩스로 보내고 JUnit 대상을 추가합니다.
다음 예제는 간단한 JUnit 테스트 실행을 보여줍니다.
<target name="unittest">
<junit haltonfailure="true" printsummary="true">
<test name="com.tutorialspoint.UtilsTest"/>
</junit>
</target>
이 예제는 com.tutorialspoint.UtilsTest junit 클래스에서 JUnit의 실행을 보여줍니다. 위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
test:
[echo] Testing the application
[junit] Running com.tutorialspoint.UtilsTest
[junit] Tests run: 12, Failures: 0, Errors: 0, Time elapsed: 16.2 sec
BUILD PASSED
Ant는 사전 정의 된 태스크 세트와 함께 제공되지만 아래 예제에 표시된대로 고유 한 태스크를 작성할 수 있습니다.
Custom Ant Tasks는 org.apache.tools.ant.Task클래스와 execute () 메서드를 확장해야합니다. 다음은 간단한 예입니다.
package com.tutorialspoint.ant;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException;
public class MyTask extends Task {
String message;
public void execute() throws BuildException {
log("Message: " + message, Project.MSG_INFO);
}
public void setMessage(String message) {
this.message= message;
}
}
사용자 지정 작업을 실행하려면 다음을 추가해야합니다. Hello World 팩스 웹 애플리케이션 :
<target name="custom">
<taskdef name="custom" classname="com.tutorialspoint.ant.MyTask" />
<custom message="Hello World!"/>
</target>
위의 사용자 지정 작업을 실행하면 'Hello World!'메시지가 인쇄됩니다.
c:\>ant custom
test:
[custom] Message : Hello World!
elapsed: 0.2 sec
BUILD PASSED
이것은 단순한 예일 뿐이며 Ant의 기능을 사용하여 빌드 및 배포 프로세스를 개선하려는 모든 작업을 수행 할 수 있습니다.
인쇄