@rai.shumar が言ったことを追加するために、最近これを見つけなければなりませんでした。これが私がこれまでに学んだことです。
参考文献:
最初にディレクトリ構造を作成します。
- 新しいプロジェクトのルートとなる「サンプル」ディレクトリを作成します。
- ビルドディレクトリを作成
- ビルド/クラスディレクトリを作成
- distディレクトリを作成
- ソースディレクトリを作成
- WEB-INFディレクトリを作成
- WEB-INF/lib ディレクトリを作成
次に、いくつかのテスト ファイルを追加しました (Apache Tomcat の例からコピーして)。
- HelloMaster.java (名前を HelloWorldExample.java に変更) を src/ に
- LocalString*.properties を WEB-INF/classes に
- "example"-dir に空の build.xml ファイルを作成します
- WEB-INF ディレクトリに空の web.xml ファイルを作成します
プロジェクト構造は次のようになります。
~/example$ tree .
├── build
│ └── classes
│
├── build.xml
├── dist
│
├── src
│ └── HelloMaster.java
└── WEB-INF
├── classes
│ ├── LocalStrings_en.properties
│ ├── LocalStrings_es.properties
│ ├── LocalStrings_fr.properties
│ ├── LocalStrings.properties
│ └── LocalStrings_pt.properties
├── lib
└── web.xml
次に、WEB-INF/web.xml ファイルに以下を追加しました。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>HelloMaster</servlet-name>
<servlet-class>HelloMaster</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloMaster</servlet-name>
<url-pattern>/hellomaster</url-pattern>
</servlet-mapping>
</web-app>
build.xml は、最も肉付きの良いものです。
<?xml version="1.0" ?>
<project name="AntExample1" default="war">
<!-- hack! setting classpath explicitly to tomcat's classes -->
<!-- export CLASSPATH=$CLASSPATH:/path_to_apache_tomcat_classes/classes/ -->
<path id="compile.classpath">
<fileset dir="WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="build/classes"/>
<mkdir dir="dist" />
</target>
<target name="compile" depends="init" >
<javac destdir="build/classes" debug="true" srcdir="src">
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="war" depends="compile">
<war destfile="dist/AntExample.war" webxml="WEB-INF/web.xml">
<fileset dir=""/>
<lib dir="WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
</target>
<target name="clean">
<delete dir="dist" />
<delete dir="build" />
</target>
</project>
明示的に設定せずにクラスパスを設定する方法がまだわからないことに注意してください。
> export CLASSPATH=$CLASSPATH:/path_to_apache_tomcat_classes/classes/
> ant #-- this should create the war file in the dist dir
war ファイルは dist/AntExample.war という名前にする必要があり、それを webapps ディレクトリにコピーできます。