개미는 무엇입니까?
Apache Ant는 Java 기반 세대 도구입니다. 원래 창립자 제임스 던컨 데이비슨 (James Duncan Davidson)에 따르면,이 도구의 이름은 또 다른 깔끔한 도구의 약어입니다.
개미가하는 일 :
생성 도구는 소스 코드 및 기타 입력 파일을 실행 가능한 파일 (및 설치 가능한 제품 이미지 형식)으로 변환하기 위해 소프트웨어 개발에 사용됩니다. 애플리케이션 생성 프로세스가 더욱 복잡해지면 각 세대 동안 정확히 동일한 생성 단계를 사용하는 동시에 최대한 많은 자동화를 달성하여 일관된 생성 버전을 적시에 생성하는 것이 더욱 중요해집니다.
개미의 장점 :
개미는 자바 기반 빌드 도구입니다. 이론적으로는 (유니 닉스) C와 다소 비슷하지만 결함은 없습니다. 최신 버전은 ANT 1.8.4입니다. 우리는 이미 Gnumake, Nmake, Jam 및 기타 빌드 도구를 만들었 기 때문에 새로운 빌드 도구가 필요한 이유는 무엇입니까? ANT의 원래 저자는 여러 하드웨어 플랫폼에서 소프트웨어를 개발할 때 이러한 도구의 한계와 불편을 견딜 수 없기 때문입니다. Make-Like 도구는 본질적으로 쉘 기반입니다. 종속성을 계산 한 다음 명령을 실행합니다 (이 명령은 명령 줄에 입력 한 명령과 크게 다르지 않음). 즉, OS 특정 또는 새로운 (명령) 프로그램을 작성하여 도구를 쉽게 확장 할 수 있습니다. 그러나 이는 특정 OS 또는 UNIX와 같은 특정 OS 유형으로 제한하는 것을 의미합니다.
개미는 다릅니다. 쉘 명령을 기반으로 한 확장 모드와 달리 ANT는 Java 클래스를 사용하여 확장합니다. (사용자) 쉘 명령을 작성할 필요가 없습니다. 구성 파일은 XML을 기반으로합니다. 대상 트리를 호출하여 다양한 작업을 실행할 수 있습니다. 각 작업은 특정 작업 인터페이스를 구현하는 객체에 의해 실행됩니다.
Ant는 크로스 플랫폼 Java 클래스를 사용하는 생성 된 파일 간의 종속성을 정의합니다. ANT를 사용하면 모든 Java 플랫폼에서 일관되게 작동하는 단일 생성기 파일을 작성할 수 있습니다 (개미 자체가 Java 언어로 구현되어 있기 때문에).
Ant는 파일 분석을 생성합니다.
개미는 자체 정의 구문을 정의하지 않습니다. 대신 생성 된 파일은 XML로 작성됩니다. ANT가 이해할 수있는 사전 정의 된 XML 요소 세트가 있으며, Ant의 기능을 확장하기 위해 새로운 요소를 정의 할 수도 있습니다. 각 빌드 파일은 단일 프로젝트 요소로 구성되며 하나 이상의 대상 요소가 포함됩니다. 대상은 생성 프로세스의 정의 된 단계로, 일련의 소스 파일을 컴파일하는 것과 같은 여러 작업을 수행합니다. 이러한 작업 자체는 다른 전용 작업 태그에 의해 수행되며 이러한 작업은 필요에 따라 개별 대상 요소로 그룹화됩니다. 단일 세대 프로세스에 필요한 모든 작업은 단일 대상 요소에 배치 할 수 있지만 유연성이 줄어 듭니다. 일반적으로 해당 작업을 논리적 생성 단계로 나누는 것이 바람직하며, 각 단계는 자체 대상 요소에 포함되어 있습니다. 이를 통해 다른 부품을 반드시 실행하지 않고 전체 생성 프로세스의 개별 부분을 수행 할 수 있습니다.
예를 들어, 특정 대상 만 호출하면 설치 가능한 프로젝트 파일을 만들지 않고도 프로젝트의 소스 코드를 컴파일 할 수 있습니다. 최상위 프로젝트 요소는 기본 속성을 포함해야하며,이 속성은 ANT 호출되면 실행할 대상을 지정합니다. 그런 다음 대상 요소를 사용하여 대상 자체를 정의해야합니다.
기본 생성 파일은 다음과 같습니다.
<? xml 버전 = "1.0"?> <project default = "init"> <target name = "init"> </target> </project>
개미의 기본 사용 :
1. 환경 변수 구성 :
Ant_home : c :/ant-1.8 -----> Ant의 설치/압축 압축 디렉토리 경로
PATH에 대한 추가 : C :/ant-1.8/Bin -----> Ant의 빈 디렉토리 경로
2. 환경 변수 구성이 CMD 창을 성공적으로 엽니 다지 여부를 확인한 다음 명령을 입력하십시오 : ant :
다음 디스플레이를 참조하십시오.
ANT는 빌드시 기본적으로 build.xml 파일을 가져야하므로 위의 프롬프트가있어 ANT의 환경이 성공적으로 구성되었음을 의미합니다.
3. 개미를 사용하여 Helloorld라는 폴더를 만듭니다.
먼저 build.xml을 편집해야합니다.
<? xml 버전 = "1.0"?> <project default = "init"> <target name = "init"> <span style = "color :#ff0000;"> <mkdir dir = "HelloWorld"> </span> </project>
그런 다음 build.xml 파일이있는 디렉토리로 전환하고 Ant를 입력하면 다음과 같이 프롬프트가 있으면 폴더 작성이 성공합니다.
(이 부분은 로그의 출력과 동일합니다)
4. 개미를 사용하여 build.xml 파일에서만 수정 해야하는 다단계 중첩 파일 디렉토리를 만들 수도 있습니다.
<? xml 버전 = "1.0"?> <project default = "init"> <target name = "init"> <span style = "color :#ff0000;"> <mkdir dir = "helloworld/a/b/c"/> </span> </target> </project>
5. 위와 같이 멀티 레벨 디렉토리를 삭제하십시오.
<? xml 버전 = "1.0"?> <project default = "init"> <target name = "init"> <span style = "color :#ff0000;"> <delete dir = "helloorld"/</span> </target> </project>
참고 : 여기서 경로는 ANT 도구의 전력 인 최고 수준의 디렉토리 경로 만 입력하면됩니다.
Java에서 디렉토리를 삭제하려면 디렉토리가 비어 있지 않으면 삭제할 수 있습니다. 그렇지 않으면 점차적으로 삭제해야합니다.
개미 도구를 사용하면 하위 디렉터가 포함 된 폴더를 직접 삭제할 수 있습니다.
다른 샘플 XML 파일을 살펴 보겠습니다.
<? xml version = "1.0"?> <project default = "init"name = "project"> <cression> 개미 빌드 파일에서 설명 태그 사용을 소개하는 간단한 프로젝트. </description> <!-XML 주석도 사용할 수 있습니다-> <target name = "init"description = "Argon 데이터베이스 초기화"> <!-여기에서 초기화 단계를 수행합니다-> </target> </project>
알 수 있듯이 XML 주석은 빌드 파일 전체에서 명확성을 위해 사용할 수 있습니다. 또한 ANT는 자체 설명 요소 및 설명 속성을 정의하며, 이는보다 구조화 된 주석을 제공하는 데 사용할 수 있습니다.
개미 속성 :
개미의 속성은 프로그래밍 언어의 변수와 유사하며 모두 이름과 값이 있습니다. 그러나 일반적인 변수와 달리 한 번 설정하면 개미의 속성이 변경되지 않습니다. 그들은 자바 언어로 된 문자열 객체와 마찬가지로 불변입니다. 이것은 처음에는 제한적으로 보일지 모르지만 Ant의 간단한 원칙을 따르는 것입니다. 결국, 그것은 프로그래밍 언어가 아닌 발전기 도구입니다. 기존 속성에 새 값을 할당하려고하면 오류로 간주되지 않지만 속성은 여전히 기존 값을 유지합니다.
정의 및 사용 속성 :
<속성 이름 = "금속"값 = "베릴륨"/>
생성 된 파일의 다른 부분 에서이 속성을 참조하려면 다음 구문을 사용하십시오.
다음과 같이 코드를 복사하십시오. $ {metal}
예를 들어, 다른 속성의 값의 일부인 그러한 값을 사용하려면 다음과 같이 레이블을 작성하십시오.
<property name = "metal-database"value = "$ {metal} .db"/>
위치 속성 :
속성은 종종 파일 시스템에서 파일 또는 디렉토리를 참조하는 데 사용되지만 다른 경로 분리기 (예 : / 및 /)를 사용하는 플랫폼의 경우 다른 플랫폼에 걸쳐있을 때 문제가 발생할 수 있습니다. Ant의 위치 속성은 플랫폼 독립적 인 방식으로 파일 시스템 경로를 포함하도록 특별히 설계되었습니다. 다음과 같은 값 대신 위치를 사용하십시오.
<property name = "database-file"location = "아카이브/데이터베이스/$ {metal} .db"/> 위치 속성에 사용되는 경로 분리 된 문자는 현재 플랫폼의 올바른 형식으로 변환됩니다. 파일 이름은 상대적이므로 프로젝트의 기본 디렉토리와 관련된 것으로 간주됩니다. 우리는 또한 다음과 같이 쉽게 쓸 수 있습니다.
<property name = "database-file"location = "아카이브/데이터베이스/$ {metal} .db"/>이 태그의 두 버전 모두 다른 플랫폼에서 동일한 동작을 갖습니다.
종속성 정의 :
프로젝트를 생성하려면 일반적으로 많은 단계가 필요합니다. 예를 들어, 먼저 소스 코드를 컴파일 한 다음 JAVA 아카이브 파일 (JAR)으로 패키지해야합니다. 이러한 단계 중 다수는 명확하게 정의 된 순서가 있습니다. 예를 들어, 컴파일러가 소스 코드에서 생성 될 때까지 클래스 파일을 패키지 할 수 없습니다. 순차적으로 지정하는 대상과 달리 ANT는 종속성을 정의하는 데보다 유연한 접근 방식을 취합니다. 각 목표는 실행되기 전에 달성 해야하는 다른 모든 목표를 기반으로 정의됩니다. 이것은 대상 요소의 종속 속성을 사용하여 달성됩니다.
<target name = "init"/> <target name = "preprocess"fexcs = "init"/> <target name = "compile"expends = "init, preprocess"/> <target name = "package"felbs = "compile"/>
이 방법을 사용하면 프로젝트의 모든 단계에서 생성 프로세스를 수행 할 수 있습니다. ANT는 먼저 정의 된 전제 조건 단계를 실행합니다. 위의 예에서 ANT가 컴파일 단계를 완료하면 Init 및 Preprocess의 두 가지 목표를 먼저 실행해야한다고 결정합니다. Init Target은 다른 대상에 의존하지 않으므로 먼저 실행됩니다. 그런 다음 ANT는 사전 프로세스 스타겟을 점검하고 INIT 대상에 의존한다는 것을 알게됩니다. 후자가 실행되었으므로 ANT는 다시 실행되지 않으므로 사전 프로세스 대상을 실행하기 시작합니다. 마지막으로 컴파일 작업 자체를 실행할 수 있습니다.
생성 된 파일에 대상이 나타나는 순서는 중요하지 않습니다. 실행이 속성에 의해 고유하게 결정되는 순서.