Ответ 1
Я думаю, что упоминание CATALINA_HOME не работает. Вам нужно поставить банки каталинии ant в класс Ant. В tomcat 7 для этой цели есть 4 банки, в то время как в более ранних версиях для этого была только одна банка. Пожалуйста, следуйте этой ссылке .
Как указано в ссылке,
Для начала убедитесь, что менеджер 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>
Catalina- ant для Tomcat 6 был инкапсулирован в один JAR файл. Catalina- ant для Tomcat 7 требует четыре файла JAR. Один из
TOMCAT_HOME/bin
:
tomcat-juli.jar
и три из
TOMCAT_HOME/lib
:
catalina-ant.jar
tomcat-coyote.jar
tomcat-util.jar
Существует как минимум три способа сделать JAR доступными для Ant:
- Скопируйте JAR в папку
ANT_HOME/lib
. Тогда Ant просто найдет их.- Скопируйте JAR в папку в вашем проекте, которую вы проверяете в своей системе управления версиями. Ant для этого требуется идентификатор пути:
<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>
Где
catalina-ant-dir
- это каталог с JAR в. Таким образом, вы не нужно изменять установку Ant на каждой машине, которую вы создаете на. Получите доступ к JAR непосредственно с вашей установки Tomcat 7. Ant тогда требуется идентификатор пути, чтобы найти их:
<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 - это путь к директории libs Tomcat 7s и
appserver.home
- это путь к установленному каталогу верхнего уровня Tomcats. Таким образом, Tomcat 7 требуется на каждой коробке, на которой вы строите.Мои личные предпочтения выше для 2.
Теперь, когда ваш Ant script может видеть JAR Catalina- 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
- это URL, в котором живет менеджер Tomcat. Это другой из изменений от Tomcat 6 до Tomcat 7. Обычно это будет be:http://:8080/manager/text
.
Tomcat.username
иTomcat.password
- имя пользователя и пароль для менеджера Tomcat.
webapp.name
- это имя приложения Tomcat, которое вы развёртывание.
war.file
- это путь к приложению Tomcat, которое вы развертываете. WAR файл.