Ant 远程部署的问题:在本地机器上用ant怎样将项目部署到另外一台机子上? (混分的别进,周一结帖)

时间:2021-10-08 12:39:53
1、在本地机器上用ant怎样将项目部署到另外一台机子上?
2、在本地的Eclipse,怎样控制另外一台机器的Tomcat?
望高手指点。现在实在很急!重谢!

12 个解决方案

#1


哈哈,想了个歪招:
1. 把目标机器文件夹共享,然后映射成你的机器的一个分区就可以直接部署咯
2. 装个PcAnyway啊

#2


关注,顶下

#3


周一了。结帖吧

#4


<?xml version="1.0"?><project name="project" default="deploy-local-catalina">    <property name="war.dir" value="dist"></property>    <property name="web.dir" value="WebContent/WEB-INF"></property>    <property name="webapp.name" value="spring"></property>    <property name="catalina.port" value="8080"></property>    <property name="catalina.username" value="admin"></property>    <property name="catalina.password" value="admin"></property>        <target name="init">       <mkdir dir="${war.dir}"/>    </target>     <target name="mkwar" depends="init">       <war destfile="${war.dir}/spring.war" webxml="${web.dir}/web.xml" >           <classes dir="${web.dir}/classes"></classes>           <fileset dir="WebContent" excludes="web.xml"></fileset>           <lib dir="${web.dir}/lib"></lib>       </war>    </target>        <target name="remove-local-catalina">       <property name="deploy.local.remove.url"           value="http://localhost:${catalina.port}/manager/remove"></property>       <get dest="deploy.local.remove.txt"            src="${deploy.local.remove.url}?path=/${webapp.name}"           username="admin" password="admin"/>              <loadfile property="depoly.local.remove.result"            srcfile="depoly.local.remove.txt"></loadfile>    </target>        <target name="deploy-local-catalina" depends="mkwar, remove-local-catalina">       <property name="deploy.local.urlpath"            value="file:///D:\MyEclipse\workspace\springstruts\dist\spring.war"></property>       <property name="deploy.local.url.params"            value="path=/${webapp.name}&amp;war=${deploy.local.urlpath}"></property>       <property name="deploy.local.url"            value="http://localhost:${catalina.port}/manager/install"></property>       <get src="${deploy.local.url}?${deploy.local.url.params}"           dest="deploy-local.txt"           username="admin"           password="admin"/>       <loadfile property="deploy.local.result"            srcfile="deploy-local.txt"></loadfile>    </target></project>
 



可以看出只要将上面的localhost换成目标的ip地址就可以实现tomcat的远程部署.



详情见http://www.cntesting.com/upgrade/read.php?tid=1245

#5


晕,不能自动换行啊,一堆乱码。直接看网址吧。我也不会,从网上找的,希望对楼主有用。

#6


谢谢了!

#7


用ant来控制tomcat reload的方法

编辑你的<your project>/build.xml,建立一个启动tomcat的target 如下:

   <target name="tomcat_start" depends="deploy" >
      <echo message="==================================="/>
      <echo message="   Start Tomcat"/>
      <echo message="==================================="/>
      <java classname="org.apache.catalina.startup.Bootstrap" fork="yes" failonerror="true" >
      <jvmarg value="-Dcatalina.home=\${catalina.home}" />
         <arg value="-config" />
         <arg path="\${tomcat.server.config}" />
         <arg value="start"/>
         <classpath>
            <fileset dir="\${catalina.home}">
              <include name="bin/bootstrap.jar"/>
              </fileset>
         </classpath>
         </java>
      </target>

   catalina.home指的是你的tomcat所在的目录。\${tomcat.server.config}在这里的值为"<your project>/tomcat/conf/server.xml>".
   有的build.xml还增加了-Dcatalian.base,建议你不要设,而是设置-config,否则会很容易出错。
   同理,关闭tomcat的target如下

   <target name="tomcat_stop">

   <echo message="==================================="/>
   <echo message="   Stop Tomcat"/>
   <echo message="==================================="/>

   <java classname="org.apache.catalina.startup.Bootstrap" fork="yes" failonerror="true" newenvironment="true">
   <jvmarg value="-Dcatalina.home=\${catalina.home}" />
      <arg value="-config" />
      <arg path="\${tomcat.server.config}" />
      <arg value="stop"/>

      <classpath>
        <fileset dir="\${catalina.home}">
        <include name="bin/bootstrap.jar"/>
        </fileset>
      </classpath>
      </java>
   </target>

4.自动reload
   通常reload 一个web application有两种方法,1是通过设置reloadable达到自动reload,2是利用本身自带的manager来
   手动reload。后者更直接快速,不过麻烦,利用ant可以很方便的实现手动reload.方法如下:
   (1).
      去tomcat网站下载catalina-ant.jar放到你的\$ANT_HOME/lib下。
   (2).
      在build.xml里定义task,如下:
         
   <taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask"/>
   (3).在build.xml定义属性:
   <property name="tomcat.manager.username" value="admin"/> 
   <property name="tomcat.manager.password" value="111111"/>
   <property name="manager.url"      value="http://localhost:8080/manager"/>

   前两项指你安装tomcat时的管理员用户名和密码,后者指tomcat的manager webapplication url.
   (4).增加一个target   
   <target name="reload" description="Reload web application"
     depends="init, deploy">

   <echo message="==================================="/>
   <echo message="   Reload Web Application"/>
   <echo message="==================================="/>
   <reload  url="\${manager.url}" username="\${tomcat.manager.username}" 
      password="\${tomcat.manager.password}" path="/xxx"/>
   </target>

#8


Ant布署文件,我的例子,你看一下吧,如果是另一台机了,你做驱动器映射生成一个新的盘符就行了。

<?xml version="1.0"?>
<project default="deploy" name="OA-Deploy">

<description>
deploy the OA project to ${Resin}\deploy
</description>

<!--  
<target name="compile" description="compile *.java in folder src">
<property name="src" value="E:\Eclipse_Workspace\OA\src"/>
<property name="build" value="../WebRoot/WEB-INF/classes"/>
    
</target>
-->

<target name="deploy" description="Deploy the OA project">
    <property name="project_webinf" value="D:\Resin3.0.14\deploy\OA\WEB-INF"/>
<property name="deploy_classes_path" value="D:\Resin3.0.14\deploy\OA\WEB-INF\classes"/>
<property name="deploy_jsp_path" value="D:\Resin3.0.14\deploy\OA\jsp"/>
<property name="deploy_webinf_path" value="D:\Resin3.0.14\deploy\OA\WEB-INF"/>
<property name="spring_config_path" value="D:\Resin3.0.14"/>
<property name="build" value="../WebRoot/WEB-INF/classes"/>
<!-- 
<javac srcdir="."
         destdir="${build}"
         fork="true"
         classpath="E:\OALib"
     />
     -->
    <copy todir="${deploy_classes_path}">
    <fileset dir=".">
         <exclude name="**/*.java"></exclude>
            </fileset>
</copy>
    <copy todir="${deploy_classes_path}">
    <fileset dir="../WebRoot/WEB-INF/classes">
         <include name="**/*.class"></include>
            </fileset>
</copy>
   <copy file="../WebRoot/WEB-INF/web.xml" todir="${deploy_webinf_path}"/>
   <!--
   <copy file="../WebRoot/WEB-INF/ApplicationContext.xml" todir="${deploy_webinf_path}"/>
--><copy todir="${deploy_jsp_path}">
    <fileset dir="../WebRoot">
      <include name="**/*.jsp"/>
      <include name="**/*.js"/>
      <include name="**/*.gif"/>
      <include name="**/*.jpg"/>
      <include name="**/*.bmp"/>
      <include name="**/*.css"/>
      <include name="**/*.htm"/>
      <include name="**/*.ftl"/>
    </fileset>
</copy>
    <copy todir="${spring_config_path}">
    <fileset dir="../">
      <include name="Spring*.xml"/>
    </fileset>
</copy>
</target>

</project>

如果是FTP的:

<ftp server="218.30.96.115" port="21" remotedir="/a" userid="cw4d119" password="n2m5q2x5" depends="yes" binary="no">
 <fileset dir="e:\pic">
       <include name="*.jpg"/>
 </fileset>
</ftp>

#9


正解:  映射一个网络驱动器....

#10


to: 
terry_yip(搞了几年开发,现在才来恶补基础,请别见笑!) ( ) 信誉:94    Blog 

把你的init,deploy也贴上,看看

#11


主  题:  Ant 远程部署的问题:在本地机器上用ant怎样将项目部署到另外一台机子上? (混分的别进,周一结帖)  
作  者:  wxt1013 (每晚抱着Java睡觉......)        Blog  
等  级:    
信 誉 值:  98  
所属社区:  Java 框架、开源  
问题点数:  100  
回复次数:  10  
发表时间:  2006-6-17 13:03:58  


结你妈个头

#12


jf

#1


哈哈,想了个歪招:
1. 把目标机器文件夹共享,然后映射成你的机器的一个分区就可以直接部署咯
2. 装个PcAnyway啊

#2


关注,顶下

#3


周一了。结帖吧

#4


<?xml version="1.0"?><project name="project" default="deploy-local-catalina">    <property name="war.dir" value="dist"></property>    <property name="web.dir" value="WebContent/WEB-INF"></property>    <property name="webapp.name" value="spring"></property>    <property name="catalina.port" value="8080"></property>    <property name="catalina.username" value="admin"></property>    <property name="catalina.password" value="admin"></property>        <target name="init">       <mkdir dir="${war.dir}"/>    </target>     <target name="mkwar" depends="init">       <war destfile="${war.dir}/spring.war" webxml="${web.dir}/web.xml" >           <classes dir="${web.dir}/classes"></classes>           <fileset dir="WebContent" excludes="web.xml"></fileset>           <lib dir="${web.dir}/lib"></lib>       </war>    </target>        <target name="remove-local-catalina">       <property name="deploy.local.remove.url"           value="http://localhost:${catalina.port}/manager/remove"></property>       <get dest="deploy.local.remove.txt"            src="${deploy.local.remove.url}?path=/${webapp.name}"           username="admin" password="admin"/>              <loadfile property="depoly.local.remove.result"            srcfile="depoly.local.remove.txt"></loadfile>    </target>        <target name="deploy-local-catalina" depends="mkwar, remove-local-catalina">       <property name="deploy.local.urlpath"            value="file:///D:\MyEclipse\workspace\springstruts\dist\spring.war"></property>       <property name="deploy.local.url.params"            value="path=/${webapp.name}&amp;war=${deploy.local.urlpath}"></property>       <property name="deploy.local.url"            value="http://localhost:${catalina.port}/manager/install"></property>       <get src="${deploy.local.url}?${deploy.local.url.params}"           dest="deploy-local.txt"           username="admin"           password="admin"/>       <loadfile property="deploy.local.result"            srcfile="deploy-local.txt"></loadfile>    </target></project>
 



可以看出只要将上面的localhost换成目标的ip地址就可以实现tomcat的远程部署.



详情见http://www.cntesting.com/upgrade/read.php?tid=1245

#5


晕,不能自动换行啊,一堆乱码。直接看网址吧。我也不会,从网上找的,希望对楼主有用。

#6


谢谢了!

#7


用ant来控制tomcat reload的方法

编辑你的<your project>/build.xml,建立一个启动tomcat的target 如下:

   <target name="tomcat_start" depends="deploy" >
      <echo message="==================================="/>
      <echo message="   Start Tomcat"/>
      <echo message="==================================="/>
      <java classname="org.apache.catalina.startup.Bootstrap" fork="yes" failonerror="true" >
      <jvmarg value="-Dcatalina.home=\${catalina.home}" />
         <arg value="-config" />
         <arg path="\${tomcat.server.config}" />
         <arg value="start"/>
         <classpath>
            <fileset dir="\${catalina.home}">
              <include name="bin/bootstrap.jar"/>
              </fileset>
         </classpath>
         </java>
      </target>

   catalina.home指的是你的tomcat所在的目录。\${tomcat.server.config}在这里的值为"<your project>/tomcat/conf/server.xml>".
   有的build.xml还增加了-Dcatalian.base,建议你不要设,而是设置-config,否则会很容易出错。
   同理,关闭tomcat的target如下

   <target name="tomcat_stop">

   <echo message="==================================="/>
   <echo message="   Stop Tomcat"/>
   <echo message="==================================="/>

   <java classname="org.apache.catalina.startup.Bootstrap" fork="yes" failonerror="true" newenvironment="true">
   <jvmarg value="-Dcatalina.home=\${catalina.home}" />
      <arg value="-config" />
      <arg path="\${tomcat.server.config}" />
      <arg value="stop"/>

      <classpath>
        <fileset dir="\${catalina.home}">
        <include name="bin/bootstrap.jar"/>
        </fileset>
      </classpath>
      </java>
   </target>

4.自动reload
   通常reload 一个web application有两种方法,1是通过设置reloadable达到自动reload,2是利用本身自带的manager来
   手动reload。后者更直接快速,不过麻烦,利用ant可以很方便的实现手动reload.方法如下:
   (1).
      去tomcat网站下载catalina-ant.jar放到你的\$ANT_HOME/lib下。
   (2).
      在build.xml里定义task,如下:
         
   <taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask"/>
   (3).在build.xml定义属性:
   <property name="tomcat.manager.username" value="admin"/> 
   <property name="tomcat.manager.password" value="111111"/>
   <property name="manager.url"      value="http://localhost:8080/manager"/>

   前两项指你安装tomcat时的管理员用户名和密码,后者指tomcat的manager webapplication url.
   (4).增加一个target   
   <target name="reload" description="Reload web application"
     depends="init, deploy">

   <echo message="==================================="/>
   <echo message="   Reload Web Application"/>
   <echo message="==================================="/>
   <reload  url="\${manager.url}" username="\${tomcat.manager.username}" 
      password="\${tomcat.manager.password}" path="/xxx"/>
   </target>

#8


Ant布署文件,我的例子,你看一下吧,如果是另一台机了,你做驱动器映射生成一个新的盘符就行了。

<?xml version="1.0"?>
<project default="deploy" name="OA-Deploy">

<description>
deploy the OA project to ${Resin}\deploy
</description>

<!--  
<target name="compile" description="compile *.java in folder src">
<property name="src" value="E:\Eclipse_Workspace\OA\src"/>
<property name="build" value="../WebRoot/WEB-INF/classes"/>
    
</target>
-->

<target name="deploy" description="Deploy the OA project">
    <property name="project_webinf" value="D:\Resin3.0.14\deploy\OA\WEB-INF"/>
<property name="deploy_classes_path" value="D:\Resin3.0.14\deploy\OA\WEB-INF\classes"/>
<property name="deploy_jsp_path" value="D:\Resin3.0.14\deploy\OA\jsp"/>
<property name="deploy_webinf_path" value="D:\Resin3.0.14\deploy\OA\WEB-INF"/>
<property name="spring_config_path" value="D:\Resin3.0.14"/>
<property name="build" value="../WebRoot/WEB-INF/classes"/>
<!-- 
<javac srcdir="."
         destdir="${build}"
         fork="true"
         classpath="E:\OALib"
     />
     -->
    <copy todir="${deploy_classes_path}">
    <fileset dir=".">
         <exclude name="**/*.java"></exclude>
            </fileset>
</copy>
    <copy todir="${deploy_classes_path}">
    <fileset dir="../WebRoot/WEB-INF/classes">
         <include name="**/*.class"></include>
            </fileset>
</copy>
   <copy file="../WebRoot/WEB-INF/web.xml" todir="${deploy_webinf_path}"/>
   <!--
   <copy file="../WebRoot/WEB-INF/ApplicationContext.xml" todir="${deploy_webinf_path}"/>
--><copy todir="${deploy_jsp_path}">
    <fileset dir="../WebRoot">
      <include name="**/*.jsp"/>
      <include name="**/*.js"/>
      <include name="**/*.gif"/>
      <include name="**/*.jpg"/>
      <include name="**/*.bmp"/>
      <include name="**/*.css"/>
      <include name="**/*.htm"/>
      <include name="**/*.ftl"/>
    </fileset>
</copy>
    <copy todir="${spring_config_path}">
    <fileset dir="../">
      <include name="Spring*.xml"/>
    </fileset>
</copy>
</target>

</project>

如果是FTP的:

<ftp server="218.30.96.115" port="21" remotedir="/a" userid="cw4d119" password="n2m5q2x5" depends="yes" binary="no">
 <fileset dir="e:\pic">
       <include name="*.jpg"/>
 </fileset>
</ftp>

#9


正解:  映射一个网络驱动器....

#10


to: 
terry_yip(搞了几年开发,现在才来恶补基础,请别见笑!) ( ) 信誉:94    Blog 

把你的init,deploy也贴上,看看

#11


主  题:  Ant 远程部署的问题:在本地机器上用ant怎样将项目部署到另外一台机子上? (混分的别进,周一结帖)  
作  者:  wxt1013 (每晚抱着Java睡觉......)        Blog  
等  级:    
信 誉 值:  98  
所属社区:  Java 框架、开源  
问题点数:  100  
回复次数:  10  
发表时间:  2006-6-17 13:03:58  


结你妈个头

#12


jf