`
happyforever82
  • 浏览: 121209 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ant checkout svn. 并ftp上传 运行远程命令

    博客分类:
  • java
阅读更多

<project basedir="." default="deploy" name="****">

 <property name="basePath" value="****" />
 <property name="destPath" value="${basePath}\svn" />

 <property name="svnurl" value="****" />
 <property name="svn.username" value="****" />
 <property name="svn.password" value="****" />

 <property name="server" value="****" />
 <property name="tomcat.path" value="****" />
 <property name="ftp.username" value="****" />
 <property name="ftp.password" value="****" />
 <property name="telnet.username" value="****" />
 <property name="telnet.password" value="****" />
 <property name="telnet.prompt" value="$" />

 <path id="ywtcclibpath">
  <fileset dir="${destPath}/global-lib">
   <include name="**\**.jar" />
  </fileset>
 </path>

 <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" />
 <target name="svncheckout" >
  <echo message="svn checkout from ${svnurl}" />
  <svn javahl="true" username="${svn.username}" password="${svn.password}">   
   <checkout url="${svnurl}/global-lib" destPath="${destPath}/global-lib" />   
   <checkout url="${svnurl}/****service" destPath="${destPath}/****service" />
   <checkout url="${svnurl}/****web" destPath="${destPath}/****web" />
  </svn>
 </target>
 
 <target name="preparewar" depends="svncheckout">
  <echo message="start to make a war" />
  
  <delete dir="${basePath}\target\web" />
  <mkdir dir="${basePath}\target\web" />

  <copy todir="${basePath}\target\web">
   <fileset dir="${destPath}\****web\web">
    <include name="**/**/**" />
    <exclude name="**/.svn/**" />
   </fileset>
  </copy>
  
  <mkdir dir="${basePath}\target\web\WEB-INF\classes" />

  <echo message="compile the service code" />
  <javac fork="true" classpathref="ywtcclibpath" srcdir="${destPath}\****service\src\main\java" encoding="UTF-8"
   destdir="${basePath}\target\web\WEB-INF\classes" target="1.5" memorymaximumsize="256m" excludes="**/.svn/**" />
  <copy todir="${basePath}\target\web\WEB-INF\classes">
   <fileset dir="${destPath}\****service\src\main\resource" />
  </copy>

  <!--
  <echo message="compile the service junit code" />
  <javac fork="true" classpathref="ywtcclibpath" srcdir="${destPath}\****service\src\test\java" encoding="UTF-8" destdir="${destPath}\target\web\WEB-INF\classes" target="1.5" memorymaximumsize="256m" excludes="**/.svn/**" />

  <junit showoutput="true" printsummary="true" fork="true">
   <classpath>
    <path>
     <fileset dir="${destPath}/target/lib">
      <include name="**\**.jar" /> 
     </fileset>
    </path>
    <path location="${destPath}\target\web\WEB-INF\classes" />
   </classpath>
   <formatter type="plain" />
   <batchtest haltonerror="on" haltonfailure="on" todir="${destPath}\target">
    <fileset dir="${destPath}\target\web\WEB-INF\classes">
     <include name="**\*Test.class" />
    </fileset>
   </batchtest>
  </junit>
  -->
  
  <echo message="compile the web code" />
  <javac fork="true" classpathref="ywtcclibpath" srcdir="${destPath}\****web\src\main\java" encoding="UTF-8" destdir="${basePath}\target\web\WEB-INF\classes" target="1.5" memorymaximumsize="256m" excludes="**/.svn/**" />
  <copy todir="${basePath}\target\web\WEB-INF\classes">
   <fileset dir="${destPath}\****web\src\main\resource" />
  </copy>
  <copy todir="${basePath}\target\web\WEB-INF\lib">
   <fileset dir="${basePath}\target\lib" />
  </copy>

  <war destfile="${basePath}\ROOT.war" basedir="${basePath}\target\web" />

 </target>

 <target name="shutdownAndUpload" depends="preparewar">

  <echo message="cleaning remote server files" />
  <telnet server="${server}">
   <read>login:</read>
   <write string="${telnet.username}" />
   <read>Password:</read>
   <write string="${telnet.password}" />
   <read string="${telnet.prompt}" />
   <write>${tomcat.path}/bin/shutdown.sh</write>
   <read string="${telnet.prompt}" />
  </telnet>

  <telnet server="${server}">
   <read>login:</read>
   <write string="${telnet.username}" />
   <read>Password:</read>
   <write string="${telnet.password}" />
   <read string="${telnet.prompt}" />
   <write>rm -R ${tomcat.path}/webapps/ROOT</write>
   <read string="${telnet.prompt}" />
   <write>rm -R ${tomcat.path}/webapps/ROOT.war</write>
   <read string="${telnet.prompt}" />
  </telnet>

  <ftp password="${ftp.password}" server="${server}" userid="${ftp.username}" remotedir="${tomcat.path}/webapps/" binary="true">
   <fileset file="${basePath}\ROOT.war" />
  </ftp>

 </target>

 <target name="deploy" depends="shutdownAndUpload">

  <telnet server="${server}">
   <read>login:</read>
   <write string="${telnet.username}" />
   <read>Password:</read>
   <write string="${telnet.password}" />
   <read string="${telnet.prompt}" />
   <write string="nohup ${tomcat.path}/bin/startup.sh" />
   <read string="${telnet.prompt}" />
  </telnet>
  <echo message="well doen, it's over." />

 </target>
</project>

1
0
分享到:
评论

相关推荐

    ant操作SVN的jar包

    `svnant`是Ant的一个任务库,它提供了与SVN交互的能力,允许你在Ant脚本中执行诸如checkout(检出)、commit(提交)、update(更新)等SVN命令。 要使用`svnant`,首先需要将其添加到Ant的类路径中。`svnant-1.1.0...

    SVN.exe+汉化包+使用说明

    3. 检出项目:使用`svn checkout`命令获取版本库中的项目到本地。 4. 日常操作:使用`svn update`更新本地文件,`svn commit`提交改动,`svn diff`查看差异,`svn revert`撤销本地更改。 5. 版本控制:通过`svn log`...

    Linux离线安装svn.zip

    4. 创建软链接,使系统可以全局访问svn命令: ``` sudo ln -s /usr/local/svn/bin/svn /usr/bin/svn ``` 离线安装svn时,因为无法自动解决依赖问题,所以你需要手动确认所有依赖项是否齐全。`Linux离线安装svn...

    svn.rar_svn常用命令

    使用`svn checkout &lt;URL&gt;` 或简写 `svn co &lt;URL&gt;` 将远程仓库的内容下载到本地工作副本。例如:`svn co https://example.com/svn/myproject` 3. **更新(update)** 在本地工作副本中,`svn update` 或 `svn up` ...

    ant 脚本从svn上取代码打包代码全,同时包括相关的jar包

    在这个例子中,`checkout`目标使用了`exec`任务来执行SVN命令,将代码检出到指定的目录。`compile`目标则使用`javac`任务编译源代码,其中`classpathref`属性指定了依赖的jar包。`classpath`路径定义了一个包含所有...

    ant-starteam.jar.zip

    `ant-starteam.jar`是核心库,包含了一组任务和类,使得Ant能够执行如添加、更新、提交、检出等Starteam的命令。`ant.license.txt`文件则包含了关于Ant的许可协议信息,对于开源项目而言,了解并遵守这些许可协议是...

    svn安装以及中文包Svn.zip

    - 完成安装后,系统会添加SVN相关的环境变量,使得在任何目录下都能运行SVN命令。 二、配置中文包 1. 获取中文包:在"svn安装以及中文包Svn.zip"压缩包中,找到适合你的SVN版本的中文语言包。在这个例子中,我们...

    Ant+Svn打包Web工程

    2. **获取项目源码**:使用Svn,通过`svn checkout`命令从远程仓库克隆Web工程的源码到本地。这将获取项目的所有文件和版本历史。 3. **Ant构建文件**:在项目根目录下,通常会有一个名为`build.xml`的文件,这是...

    svn.zip_in_svn

    2. **克隆仓库**: 使用`svn checkout`命令从仓库中获取项目到本地的工作副本。这样,你就可以在本地修改文件而不影响仓库中的原始版本。 3. **版本控制**: SVN使用版本号来追踪文件的每次修改。你可以使用`svn ...

    svn.rar版本控制软件

    它允许团队协作开发,对源代码和其他文件进行版本管理,确保多人同时编辑时的数据一致性,并提供了历史记录查询、回滚修改等功能。在SVN中,每一个文件和目录都有其唯一的版本号,可以追踪每一次的修改,这对于软件...

    svn.pdf.tar.gz_linux svn

    在开发机上,安装SVN客户端(通常已经预装),并使用以下命令克隆仓库: ```bash svn checkout http://your-server/svn my-working-copy ``` 之后,就可以在`my-working-copy`目录下进行常规的SVN操作,如`svn add...

    SmartSVN.zip

    在使用SmartSVN时,了解基本的SVN概念,如Checkout(检出)、Commit(提交)、Update(更新)和Revert(还原),对于有效利用该工具至关重要。此外,掌握如何处理冲突、创建和合并分支,以及有效地进行版本管理,将...

    ant svn插件jar包

    这样,你就可以在Ant构建文件中声明新的任务,比如`&lt;svn&gt;`,并配置相关属性来执行SVN命令。 以下是一个简单的示例,展示了如何在Ant脚本中使用SVN插件: ```xml &lt;project name="myProject" basedir="." default=...

    pycharm配置svn.docx

    - 要关联项目到SVN仓库,右键点击项目根目录,选择`Git` -&gt; `Import into Version Control` -&gt; `Checkout from Version Control` -&gt; `Subversion`。 - 在弹出的对话框中,输入SVN仓库的URL。这个URL可以从SVN管理...

    svn命令大全.docx

    "svn命令大全" SVN(Subversion)是一种版本控制系统,主要用于管理软件开发过程中的代码修改和更新。下面是 Linux 下 SVN 命令大全介绍: 一、checkout 命令 checkout 命令用于将文件从服务器 checkout 到本地...

    SVN安装包.rar

    1. `checkout`:从仓库获取最新代码,命令是`svn checkout URL`,URL指向SVN仓库的位置。 2. `update`:更新本地工作副本到最新版本,命令是`svn update`。 3. `commit`:将本地修改提交到仓库,命令是`svn commit -...

    svn.zip安装包

    - 找到安装程序,如"TortoiseSVN-x.x.x-xxxxx-win32-svn-x.x.x.msi",双击运行。 - 按照向导指引完成安装,过程中可以选择安装路径、语言等选项。 - 安装完成后,重启电脑,TortoiseSVN将集成到文件资源管理器...

    svn.zip,svn插件

    SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理源代码和其他文件的更改历史。这个"svn.zip"文件包含的是一个SVN插件,主要用于集成到开发环境中,如STS(Spring Tool Suite)、Eclipse和MyEclipse...

    svn.https.tar.ball.zip

    总的来说,"svn.https.tar.ball.zip" 提供了一套完整的Subversion部署环境,包含了所有必要的依赖库,使得用户可以在本地环境中搭建并运行支持HTTPS的Subversion服务器。这对于开发团队在私有网络或互联网上安全协作...

    svn在linux下的使用(svn命令)

    svn checkout 命令用于将文件从版本库 checkout 到本地目录。例如:svn checkout svn://192.168.1.1/pro/domain 2. 往版本库中添加新的文件 svn add 命令用于将新的文件添加到版本库中。例如:svn add test.php...

Global site tag (gtag.js) - Google Analytics