CATALINA_HOME に言及するだけではうまくいかないと思います。catalina-ant jar を Ant のクラスパスに配置する必要があります。Tomcat 7 では、この目的のために 4 つの jar がありましたが、以前のバージョンでは 1 つの jar しかありませんでした。このリンクに従ってください。
リンクから引用したように、
まず、Tomcat マネージャーが Catalina-Ant で使用できるように構成されていることを確認します。manager-script
のいずれかのユーザーのロールに が含まれていることを確認してくださいTOMCAT_HOME/conf/tomcat-users.xml
。例えば:
<tomcat-users>
<user name="admin" password="s3cr£t" roles="manager-gui,manager-script"/>
</tomcat-users>
Tomcat 6 の Catalina-Ant は、単一の JAR ファイル内にカプセル化されました。Tomcat 7 の Catalina-Ant には、4 つの JAR ファイルが必要です。からの 1 つ
TOMCAT_HOME/bin
:
tomcat-juli.jar
と からの 3 つTOMCAT_HOME/lib
:
catalina-ant.jar
tomcat-coyote.jar
tomcat-util.jar
JAR を Ant で使用できるようにするには、少なくとも 3 つの方法があります。
- JAR を
ANT_HOME/lib
フォルダーにコピーします。その後、Ant はそれらを見つけます。
- ソース管理システムにチェックインするプロジェクト内のフォルダーに JAR をコピーします。次に、Ant はそれらを見つけるためにパス ID を必要とします。
<path id="catalina-ant-classpath">
<fileset dir="${catalina-ant-dir}">
<include name="catalina-ant.jar"/>
<include name="tomcat-coyote.jar"/>
<include name="tomcat-util.jar"/>
<include name="tomcat-juli.jar"/>
</fileset>
</path>
JAR を含むディレクトリはどこcatalina-ant-dir
にありますか。このように、構築するすべてのマシンで Ant インストールを変更する必要はありません。Tomcat 7 インストールから直接 JAR にアクセスします。次に、Ant はそれらを見つけるためにパス ID を必要とします。
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
<include name="tomcat-coyote.jar"/>
<include name="tomcat-util.jar"/>
</fileset>
<fileset dir="${appserver.home}/bin">
<include name="tomcat-juli.jar"/>
</fileset>
</path>
appserver.lib は、Tomcat 7 の lib ディレクトリへ
appserver.home
のパスであり、Tomcat の最上位にインストールされたディレクトリへのパスです。このように、構築するすべてのボックスで Tomcat 7 が必要です。
私の個人的な好みは上記の 2 です。
Ant スクリプトが Catalina-Ant JAR を認識できるようになったので、使用可能なタスクを Ant スクリプトに伝える必要があります。これらは、Ant で使用できるタスクのすべてではないにしても、ほとんどのタスクです。
<taskdef name="catalina-deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-list" classname="org.apache.catalina.ant.ListTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-reload" classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-findleaks" classname="org.apache.catalina.ant.FindLeaksTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-resources" classname="org.apache.catalina.ant.ResourcesTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-start" classname="org.apache.catalina.ant.StartTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-stop" classname="org.apache.catalina.ant.StopTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="catalina-ant-classpath"/>
最後に、実際に作業を行う一連のタスクが必要です。ただし、上記でわかるように、次のタスクのみを使用する傾向があるタスクがいくつかあります。
<target name = "stop-webapp">
<catalina-stop url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${webapp.name}"
failonerror="false"/>
</target>
<target name = "start-webapp">
<catalina-start url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${webapp.name}"/>
</target>
<target name = "undeploy-webapp">
<catalina-undeploy url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${webapp.name}"
failonerror="false"/>
</target>
<target name = "deploy-webapp">
<catalina-deploy url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${webapp.name}"
war="file:${war.file}"/>
</target>
tomcat.manager.url
Tomcat マネージャが存在する URL です。これは、Tomcat 6 から Tomcat 7 への別の変更点です。通常、これは次のようになりますhttp://:8080/manager/text
。
Tomcat.username
およびTomcat.password
は、Tomcat マネージャーのユーザー名とパスワードです。
webapp.name
デプロイする Tomcat アプリケーションの名前です。
war.file
デプロイする Tomcat アプリケーションの WAR ファイルのパスです。