ANT簡明チュートリアル(二)
32288 ワード
三、antを利用してJavaプロジェクトの構築と配置
Antはjavac、java、jarなどのコマンドを使用してjava操作を実行する代わりに、Javaプロジェクトの構築と導入を容易にすることができます.
1.antのjavacコマンドでJavaプログラムをコンパイルする
Antのjavacコマンドは、Javaプログラムをコンパイルする機能を実現するために使用されます.簡単な例を見てみましょう.まず、JavaTestProというJavaプロジェクトを構築し、srcディレクトリをソースコードディレクトリとし、srcディレクトリの下にHelloWorld.javaというクラスファイルを構築します.このクラスのファイルの内容は次のとおりです.
同時にJavaTestProプロジェクトのルートディレクトリの下でbuild.xmlファイルを確立し、このファイルの中でsrディレクトリの下のJavaファイルをコンパイルし、コンパイルしたclassファイルをbuild/classesディレクトリに入れ、プロジェクト全体のディレクトリ構造は以下の通りである.
コンパイル前にclassesディレクトリをクリアする必要があります.このファイルの内容は次のとおりです.
プロジェクトルートディレクトリ(C:ThinkInJavaCodeJavaTestPro)でantコマンドを実行すると、そのディレクトリの下に新しく生成されたbuild/classesサブディレクトリが見つかり、コンパイル後に生成されたHelloWorld.classsファイルがそのディレクトリの下にあります.
2.javaコマンドを使用してJavaプログラムを実行する
Antではjavaコマンドを用いてJavaプログラムを実行する機能を実現することができる.上記のbuild.xmlに基づいて、次のように変更できます.
次に、コンソールに出力が表示されます:「[java]hello world!」
3.jarコマンドを使用してjarファイルを生成する
上記の例に基づいてjarパケットをさらに生成することもでき、runというtargetに次のtargetを加えることができます.
ここで、projectのdefaultプロパティはjarに設定すべきに設定されており、antの実行が完了すると、プロジェクトのルートディレクトリの下にhelloworld.jarのjarパッケージが生成されていることがわかります.jarパッケージは、次のコマンドを実行して実行できます.
4.warコマンドを使用してJavaEEプロジェクトをパッケージングする
JavaEEプロジェクトを作成します.srcはJavaソースディレクトリ、WebContentは各jsp格納ディレクトリ、libはプロジェクトが参照するパッケージのディレクトリです.WebTestプロジェクトディレクトリの下にbuild.xmlファイルが作成され、このファイルはプロジェクトのAntコンポーネントファイルです.
読者は、前の例で開発したHelloWorld.javaファイルをsrcディレクトリの下に入れ、WebContentの下でHelloJSP.jspファイルを作成することができます.その内容は簡単です.Hello情報を出力します.コードは以下の通りです.
次にbuild.xmlファイルを作成します.その内容は次のとおりです.
C:ThinkInJavaCodeWebTestディレクトリの下でantを実行すると、WebTest.warファイルが生成され、TomcatなどのWebコンテナの対応するディレクトリの下(${Tomcataインストールディレクトリ}webapps)に入れてWebプロジェクトを実行できます.
Antはjavac、java、jarなどのコマンドを使用してjava操作を実行する代わりに、Javaプロジェクトの構築と導入を容易にすることができます.
1.antのjavacコマンドでJavaプログラムをコンパイルする
Antのjavacコマンドは、Javaプログラムをコンパイルする機能を実現するために使用されます.簡単な例を見てみましょう.まず、JavaTestProというJavaプロジェクトを構築し、srcディレクトリをソースコードディレクトリとし、srcディレクトリの下にHelloWorld.javaというクラスファイルを構築します.このクラスのファイルの内容は次のとおりです.
- public class HelloWorld {
-
- public static void main(String[] args) {
-
- System.out.println("hello world!");
-
- }
-
- }
同時にJavaTestProプロジェクトのルートディレクトリの下でbuild.xmlファイルを確立し、このファイルの中でsrディレクトリの下のJavaファイルをコンパイルし、コンパイルしたclassファイルをbuild/classesディレクトリに入れ、プロジェクト全体のディレクトリ構造は以下の通りである.
- |JavaTestPro
-
- |src
-
- |build
-
- |classes
-
- |build.xml
コンパイル前にclassesディレクトリをクリアする必要があります.このファイルの内容は次のとおりです.
- <?xml version="1.0" ?>
-
-
-
- <project name ="javacTest" default="compile" basedir=".">
-
- <target name="clean">
-
- <delete dir="${basedir}/build"/>
-
- </target>
-
- <target name="compile" depends ="clean">
-
- <mkdir dir ="${basedir}/build/classes"/>
-
- <javac srcdir ="${basedir}/src" destdir ="${basedir}/build/classes"/>
-
- </target>
-
- </project>
プロジェクトルートディレクトリ(C:ThinkInJavaCodeJavaTestPro)でantコマンドを実行すると、そのディレクトリの下に新しく生成されたbuild/classesサブディレクトリが見つかり、コンパイル後に生成されたHelloWorld.classsファイルがそのディレクトリの下にあります.
2.javaコマンドを使用してJavaプログラムを実行する
Antではjavaコマンドを用いてJavaプログラムを実行する機能を実現することができる.上記のbuild.xmlに基づいて、次のように変更できます.
- <?xml version="1.0" ?>
-
- <project name ="javacTest" default="run" basedir=".">
-
- <target name="clean">
-
- <delete dir="${basedir}/build"/>
-
- </target>
-
- <target name="compile" depends ="clean">
-
- <mkdir dir ="${basedir}/build/classes"/>
-
- <javac srcdir ="${basedir}/src" destdir ="${basedir}/build/classes"/>
-
- </target>
-
- <target name="run" depends ="compile">
-
- <java classname ="HelloWorld">
-
- <classpath>
-
- <pathelement path="${basedir}/build/classes"/>
-
- </classpath>
-
- </java>
-
- </target>
-
- </project>
次に、コンソールに出力が表示されます:「[java]hello world!」
3.jarコマンドを使用してjarファイルを生成する
上記の例に基づいてjarパケットをさらに生成することもでき、runというtargetに次のtargetを加えることができます.
- <?xml version="1.0" ?>
-
- <project name ="javacTest" default="jar" basedir=".">
-
- <target name="clean">
-
- <delete dir="${basedir}/build"/>
-
- </target>
-
- <target name="compile" depends ="clean">
-
- <mkdir dir ="${basedir}/build/classes"/>
-
- <javac srcdir ="${basedir}/src" destdir ="${basedir}/build/classes"/>
-
- </target>
-
- <target name="run" depends="compile">
-
- <java classname ="HelloWorld">
-
- <classpath>
-
- <pathelement path="${basedir}/build/classes"/>
-
- </classpath>
-
- </java>
-
- </target>
-
- <target name="jar" depends="run">
-
- <jar destfile="helloworld.jar" basedir="${basedir}/build/classes">
-
- <manifest>
-
- <attribute name="Main-class" value="HelloWorld"/>
-
- </manifest>
-
- </jar>
-
- </target >
-
- </project>
ここで、projectのdefaultプロパティはjarに設定すべきに設定されており、antの実行が完了すると、プロジェクトのルートディレクトリの下にhelloworld.jarのjarパッケージが生成されていることがわかります.jarパッケージは、次のコマンドを実行して実行できます.
- java -jar helloworld.jar
4.warコマンドを使用してJavaEEプロジェクトをパッケージングする
JavaEEプロジェクトを作成します.srcはJavaソースディレクトリ、WebContentは各jsp格納ディレクトリ、libはプロジェクトが参照するパッケージのディレクトリです.WebTestプロジェクトディレクトリの下にbuild.xmlファイルが作成され、このファイルはプロジェクトのAntコンポーネントファイルです.
- |WebContent
-
- |src
-
- |build
-
- |classes
-
- |WebContent
-
- |META-INF
-
- |MANIFEST.MF
-
- |WEB-INF
-
- |lib
-
- |classes
-
- |HelloJSP.jsp
-
- |build.xml
読者は、前の例で開発したHelloWorld.javaファイルをsrcディレクトリの下に入れ、WebContentの下でHelloJSP.jspファイルを作成することができます.その内容は簡単です.Hello情報を出力します.コードは以下の通りです.
- <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
- <html>
-
- <head>
-
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
- <title>war test for ant</title>
-
- </head>
-
- <body>
-
- Hello JSP!Hello Ant!
-
- </body>
-
- </html>
次にbuild.xmlファイルを作成します.その内容は次のとおりです.
- <?xml version="1.0" encoding="UTF-8" ?>
-
- <project name ="WebTest" default ="war" basedir =".">
-
- <property name ="classes" value ="${basedir}/build/classes"/>
-
- <property name ="build" value ="${basedir}/build"/>
-
- <property name ="lib" value ="${basedir}/WebContent/WEB-INF/lib"/>
-
- <!-- build -->
-
- <target name ="clean">
-
- <delete dir ="${build}"/>
-
- </target>
-
-
-
- <!-- build/classes , class build/classes -->
-
- <target name ="compile" depends ="clean">
-
- <mkdir dir ="${classes}"/>
-
- <javac srcdir ="${basedir}/src" destdir ="${classes}"/>
-
- </target>
-
-
-
- <!-- war -->
-
- <target name ="war" depends ="compile">
-
- <war destfile ="${build}/WebTest.war" webxml ="${basedir}/WebContent/WEB-INF/web.xml">
-
- <!-- WebRoot WEB-INF META-INF -->
-
- <fileset dir ="${basedir}/WebContent" includes ="**/*.jsp"/>
-
- <!-- lib jar -->
-
- <lib dir ="${lib}"/>
-
- <!-- build/classes class -->
-
- <classes dir ="${classes}"/>
-
- </war>
-
- </target>
-
- </project>
C:ThinkInJavaCodeWebTestディレクトリの下でantを実行すると、WebTest.warファイルが生成され、TomcatなどのWebコンテナの対応するディレクトリの下(${Tomcataインストールディレクトリ}webapps)に入れてWebプロジェクトを実行できます.