Arv*_*vin 18 java eclipse ant tomcat warnings
在Eclipse中,我的build.xml收到5个警告:
taskdef class.org.apache.catalina.ant.InstallTask cannot be found
taskdef class.org.apache.catalina.ant.ListTaskcannot be found
taskdef class.org.apache.catalina.ant.ReloadTaskcannot be found
taskdef class.org.apache.catalina.ant.StartTask cannot be found
taskdef class.org.apache.catalina.ant.StopTask cannot be found
Run Code Online (Sandbox Code Playgroud)
我已经设置了以下系统环境变量(Windows 7)
ANT_HOME: C:\apache-ant-1.8.4
CATALINA_HOME: C:\apache-tomcat-7.0.29
JAVA_HOME: C:\Program Files\Java\jdk1.6.0_34
and have added %ANT_HOME%/bin to PATH
Run Code Online (Sandbox Code Playgroud)
编辑:我还将catalina-ant.jar添加到C:\ apache-ant-1.8.4\lib中
代码的更多部分:
<!-- We need the Catalina jars for Tomcat -->
<!-- * for other app servers - check the docs -->
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
Run Code Online (Sandbox Code Playgroud)
怎么了?
Rai*_*lam 65
在tomcat 7中,InstallTask被DeployTask取代.
改变你的声明
旧
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
Run Code Online (Sandbox Code Playgroud)
同
<taskdef name="install" classname="org.apache.catalina.ant.DeployTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
Run Code Online (Sandbox Code Playgroud)
vik*_*kas 22
我想只提到CATALINA_HOME是行不通的.你需要把catalina-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>
Run Code Online (Sandbox Code Playgroud)
用于Tomcat 6的Catalina-Ant封装在单个JAR文件中.用于Tomcat 7的Catalina-Ant需要四个JAR文件.一个来自
TOMCAT_HOME/bin:
tomcat-juli.jar
Run Code Online (Sandbox Code Playgroud)
和三个来自
TOMCAT_HOME/lib:
catalina-ant.jar
tomcat-coyote.jar
tomcat-util.jar
Run Code Online (Sandbox Code Playgroud)
至少有三种方法可以使Ant可用于JAR:
- 将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>
Run Code Online (Sandbox Code Playgroud)
catalina-ant-dir带有JAR的目录在哪里.这样,您无需在构建的每台计算机上修改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>
Run Code Online (Sandbox Code Playgroud)
其中appserver.lib是Tomcat 7的lib目录
appserver.home的路径,是Tomcat顶级安装目录的路径.这样,您构建的每个盒子都需要Tomcat 7.我个人的偏好是2以上.
现在您的Ant脚本可以看到Catalina-Ant JAR,您需要告诉它哪些任务可用.这些是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"/>
Run Code Online (Sandbox Code Playgroud)
最后,您需要一组实际完成工作的任务.虽然如上所述,但我只倾向于使用以下几项任务:
<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>
Run Code Online (Sandbox Code Playgroud)
tomcat.manager.url是Tomcat管理器所在的URL.这是从Tomcat 6到Tomcat 7的另一个变化.通常这将是:http://:8080/manager/text.
Tomcat.username并且Tomcat.password是Tomcat管理器的用户名和密码.
webapp.name是您正在部署的Tomcat应用程序的名称.
war.file是您正在部署WAR文件的Tomcat应用程序的路径.
| 归档时间: |
|
| 查看次数: |
32972 次 |
| 最近记录: |