Apache Ant 입문

6366 단어
apache ant 의 설치 와 소 개 는 공식 사용자 매 뉴 얼 에 상세 하 게 설명 되 어 있 습 니 다. 다음은 Ant 의 일부 개념 부터 시작 합 니 다.
기본 개념
project
Ant 의 빌 드 파일 (buildfiles) 은 XML 형식 입 니 다. 빌 드 파일 마다 하나의 procject 태그 가 포함 되 어 있 습 니 다. 이 빌 드 파일 이 구축 할 프로젝트 를 대표 합 니 다.procject 라벨 은 세 가지 속성 이 있 는데 그것 이 바로 name, default, basedir 입 니 다. 이 세 가지 속성의 역할 은 다음 과 같 습 니 다.
속성
묘사 하 다.
반드시
name
the name of the project.
No
default
the default target to use when no target is supplied.
No; however, since Ant 1.6.0, every project includes an implicit target that contains any and all top-level tasks and/or types. This target will always be executed as part of the project's initialization, even when Ant is run with the -projecthelp option.
basedir
the base directory from which all path calculations are done. This attribute might be overridden by setting the "basedir" property beforehand. When this is done, it must be omitted in the project tag. If neither the attribute nor the property have been set, the parent directory of the buildfile will be used. A relative path is resolved relative to the directory containing the build file.
No
또한, < description > 탭 을 통 해 procject 에 설명 을 추가 할 수 있 습 니 다. 이 description 은 projet 의 하위 요소 입 니 다. 예 를 들 어:
<project name="MyProject" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
</project>

target
하나의 target 은 임 무 를 수행 할 집합 을 표시 합 니 다.프로젝트 에 최소한 하나의 target 이 포함 되 어 있 으 며, target 마다 하나 이상 의 작업 이 포함 되 어 있 습 니 다.Ant 를 시작 할 때 기본 target 을 지정 할 수 있 습 니 다. 지정 하지 않 으 면 procject 탭 에서 default 속성 이 지정 한 target 을 기본 으로 실행 합 니 다.
하나의 procject 에 여러 개의 target 이 있 을 수 있 습 니 다. 하나의 target 은 다른 target 에 의존 할 수 있 습 니 다. 예 를 들 어 하나의 procject 에서 copiling 이라는 target 과 distributable 이라는 target 을 정 했 지만 copiling 이 실행 되 어야 distributable 을 실행 할 수 있 습 니 다. 그러면 distributable 은 copiling 에 의존 하 는 것 입 니 다. Ant 는 이러한 의존 을 처리 할 수 있 습 니 다.그러나 Ant 의 의존 은 target 실행 순 서 를 처리 하 는 것 일 뿐 이들 의 실행 여 부 는 영향 을 주지 않 습 니 다. 예 를 들 어 copiling 실행 에 실패 하면 distributable 은 실행 에 실패 할 뿐 입 니 다.
task
task 는 실행 가능 한 코드 세 션 입 니 다.하나의 target 은 여러 task 를 포함 할 수 있 습 니 다.
모든 task 는 여러 개의 속성 (또는 값) 을 가 질 수 있 습 니 다. 그 중에서 속성의 값 은 직접 지정 할 수도 있 고 property 에 대한 참조 일 수도 있 습 니 다. 이 인용 은 task 가 실행 되 기 전에 분 석 될 것 입 니 다.
task 의 구 조 는 다음 과 같다.
<name attribute1="value1" attribute2="value2" ... />

name 은 바로 이 task 의 이름 입 니 다. attribute 1, attribute 2 는 name 이라는 task 의 속성 입 니 다. 속성 은 여러 개 있 을 수 있 습 니 다. 예 를 들 어 mkdir 라 는 task 역할 은 디 렉 터 리 를 만 드 는 것 입 니 다. 그 용법 은 다음 과 같 습 니 다.
<mkdir dir="${dist}"/>

이 task 는 디 렉 터 리 를 만 드 는 것 입 니 다. dir 는 그 속성 입 니 다. 만 들 디 렉 터 리 의 경 로 를 지정 하 는 데 사 용 됩 니 다. 디 렉 터 리 의 경 로 는 속성 값 ${dist} 에서 지정 합 니 다. 이 속성 dist 의 값 은 property 에서 지정 합 니 다.
Apache Ant 에 많은 task 가 내장 되 어 있 습 니 다. 구체 적 으로 참고 할 수 있 습 니 다.http://ant.apache.org/manual/tasklist.html
property
property 는 procject 에서 name 또는 value 속성 을 통 해 속성 을 설정 하거나 자원 파일 을 통 해 속성 을 설정 하 는데 사용 되 며, property 는 대소 문자 가 민감 합 니 다.... 와 같다
<property name="foo.dist" value="dist"/>

이 property 의 역할 은 속성 foo. dist 의 값 을 dist 로 설정 하 는 것 입 니 다. name 과 value 를 통 해 속성 값 을 지정 하 는 것 외 에 property 는 지정 한 파일 과 자원 으로 속성 을 설정 하 는 것 도 지원 합 니 다. 예 를 들 어
<property file="foo.properties"/>

foo. properties 라 는 파일 에서 속성 과 속성 값 을 읽 고 url 을 통 해 네트워크 의 자원 을 읽 을 수 있 음 을 나타 낸다. 예 를 들 어:
<property url="http://www.mysite.com/bla/props/foo.properties"/>

웹 에서 url 을 읽 는 것 을 표시 합 니 다.http://www.mysite.com/bla/props/foo.properties의 속성.property 의 기타 속성 에 대해 참고 할 수 있 습 니 다.http://ant.apache.org/manual/Tasks/property.html
property 는 본질 적 으로 task 입 니 다.
간단 한 빌 드 파일 쓰기
Apache Ant 에 대한 기본 내용 을 배 웠 습 니 다. 이제 가장 기본 적 인 build. xml 파일 을 쓰 겠 습 니 다. 이 build. xml 파일 의 역할 은 자바 프로젝트 를 컴 파일 한 다음 이 프로젝트 를 jar 패키지 로 만 들 고 자바 류 파일 을 먼저 쓰 는 것 입 니 다.
package com.anttest;

public class AntTest {

	public static void main(String[] args) {
		System.out.println("Hello Ant");
	}

}

이 자바 파일 이 있 는 항목 의 이름 은 AntStart 이 고 build. xml 파일 은 AntStart 프로젝트 의 루트 디 렉 터 리 에 놓 여 있 습 니 다. 그 내용 은 다음 과 같 습 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<project name="AntStart" default="dist" basedir=".">
    <description>
        build     
    </description>
  <!--    build         -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">
    <!--         -->
    <tstamp/>
    <!--                  -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
        description="compile the source " >
    <!--   ${src}   Java     ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!--     jar     -->
    <mkdir dir="${dist}/lib"/>

    <!--   jar   -->
    <jar jarfile="${dist}/lib/AntStart-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="clean up" >
    <!--      -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

AntStart 프로젝트 의 루트 디 렉 터 리 에서 ant 명령 을 실행 하면 build 디 렉 터 리 와 dist 디 렉 터 리 를 만 듭 니 다. dist 디 렉 터 리 에 lib 디 렉 터 리 가 있 습 니 다. 이 디 렉 터 리 에는 구 축 된 jar 패키지 가 저장 되 어 있 습 니 다. 마지막 으로 clean 이라는 target 이 실행 되 지 않 았 습 니 다. procject 의 기본 target 은 dist 이기 때 문 입 니 다. procject 의 기본 target 을 clean 으로 바 꾸 면 마지막 으로 build 디 렉 터 리 와 dist 디 렉 터 리 를
Reference
http://ant.apache.org/manual/index.html
EOF

좋은 웹페이지 즐겨찾기