首先,输入项目名称,创建一个自由风格的项目;

然后,配置旧项目的策略参数,目的是防止构建项目太多,占用资源。

下一步,jdk版本选择:

下一步,关联svn项目。

下一步:配置ant

看不清,再来一张。

下一步,构建:

下一步,配置tomcat:

最后,点击应用-》保存。

然后我们选择【立即构建】

运行起来,肯定会报错,因为我们使用ant发布,需要配置build.xml文件。

我的build.xml文件在项目根目录下,如图:

内容如下(该文件中的路径是根据自己项目路径为准,会进行个别的变动,要不然会报错或者是构建成功之后访问项目报404错误,哈哈,我就是):

  1. <?xml version="1.0" encoding="GBK"?>
  2. <project name="SF" default="deploy" basedir=".">
  3. <property environment="env" />
  4. <property name="webapp.name" value="SF" />
  5. <property name="catalina.home" value="/usr/local/apache-tomcat-8.0.20/" />
  6. <property name="dist.dir" value="${basedir}/dist" />
  7. <property name="ant.dir" value="/usr/local/apache-ant-1.10.5" />
  8. <property name="webRoot.dir" value="${basedir}/WebRoot" />
  9. <property name="src.dir" value="${basedir}/src" />
  10. <property name="resources.dir" value="${basedir}/resources" />
  11. <property name="lib.dir" value="${webRoot.dir}/WEB-INF/lib" />
  12. <property name="build.dir" value="${basedir}/build" />
  13. <!-- 使用eclipse jdt进行编译,而不使用JDK编译 -->
  14. <!-- <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" /> -->
  15. <!-- <property name="build.compiler" value="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el6_10.x86_64" /> -->
  16.  
  17. <!-- 初始化classpath -->
  18. <path id="project.classpath">
  19. <fileset dir="${lib.dir}">
  20. <include name="**/*.jar" />
  21. </fileset>
  22. <!-- 添加tomcat类路径 -->
  23. <fileset dir="${catalina.home}/lib">
  24. <include name="*.jar" />
  25. </fileset>
  26. <!-- ant lib包 -->
  27. <fileset dir="${ant.dir}">
  28. <include name="**/*.jar" />
  29. </fileset>
  30. </path>
  31.  
  32. <!-- get the source compile classpath in a printable form -->
  33. <pathconvert pathsep="${line.separator}| |-- "
  34. property="echo.path.compile"
  35. refid="project.classpath">
  36. </pathconvert>
  37.  
  38. <!-- show classpath jars -->
  39. <target name="print_classpath">
  40. <echo message="|-- compile classpath"/>
  41. <echo message="| |"/>
  42. <echo message="| |-- ${echo.path.compile}"/>
  43. </target>
  44.  
  45. <!-- 删除之前的目录结构 -->
  46. <target name="clear" description="清理旧文件">
  47. <delete dir="${build.dir}" />
  48. <delete dir="${dist.dir}" />
  49. <delete file="${catalina.home}/webapps/${webapp.name}.war" />
  50. <delete dir="${catalina.home}/webapps/${webapp.name}" />
  51. </target>
  52.  
  53. <!-- 创建目录结构 -->
  54. <target name="init" depends="clear" description="创建初始化目录结构">
  55. <mkdir dir="${build.dir}/classes" />
  56. <mkdir dir="${dist.dir}" />
  57. </target>
  58.  
  59. <!-- 编译java -->
  60. <target name="compile" depends="init" description="编译java文件">
  61. <echo message="begin compile..." />
  62. <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
  63. includeantruntime="false" nowarn="on"
  64. source="1.8" target="1.8" deprecation="true" debug="true"
  65. encoding="UTF-8" classpathref="project.classpath"
  66. >
  67. <!-- <compilerarg line="-XDignore.symbol.file"/> -->
  68. <compilerarg line="-Xlint:unchecked" />
  69. <!-- <classpath refid="project.classpath" /> -->
  70. </javac>
  71. <copydir dest="${build.dir}/classes" src="${resources.dir}" />
  72. <!-- <copy todir="${build.dir}">
  73. <fileset dir="${resources.dir}">
  74. <include name="**/**/*.xml" />
  75. <include name="**/**/*.ftl" />
  76. <include name="**/*.xml" />
  77. <include name="*.xml" />
  78. <include name="*.properties" />
  79. </fileset>
  80. </copy> -->
  81. <echo message="end compile..." />
  82. </target>
  83.  
  84. <!-- 将class文件打成 jar包 -->
  85. <!--
  86. <target name="pack" depends="compile">
  87. <jar jarfile="${build.dir}/${webapp.name}.jar">
  88. <fileset dir="${build.dir}/classes">
  89. <include name="**/*.class"/>
  90. </fileset>
  91. </jar>
  92. </target>
  93. -->
  94.  
  95. <!-- 打成war包, 名称默认为 项目名 -->
  96. <target name="war" depends="compile" description="将工程打成war包">
  97. <echo message="begin war..." />
  98. <war destfile="${dist.dir}/${webapp.name}.war" basedir="${webRoot.dir}"
  99. webxml="${webRoot.dir}/WEB-INF/web.xml">
  100. <lib dir="${lib.dir}" />
  101. <classes dir="${build.dir}/classes" />
  102. <fileset dir="${webRoot.dir}">
  103. <include name="***.*" />
  104. </fileset>
  105. </war>
  106. <echo message="end war..." />
  107. </target>
  108.  
  109. <!-- copy war包 tomcat的deploy目录 -->
  110. <target name="deploy" depends="war" description="部署项目">
  111. <echo message="begin deploy..." />
  112. <copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" />
  113. <echo message="end deploy..." />
  114. </target>
  115.  
  116. </project>

修改好build.xml文件之后,提交到svn。在jenkins中重新构建,构建成功之后,无需重启tomcat,即可访问到项目。

例如:http://ip地址:8080/项目名称

下一节我们介绍build.xml需要变动哪些地方!

jenkins+svn+Ant+tomcat+非maven项目构建的更多相关文章

  1. Jenkins+svn+ant+tomcat持续集成

    转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...

  2. 【tomcat 无法部署】svn上下载的maven项目无法部署到tomcat中

    问题: svn上下载的maven项目无法部署到tomcat中,tomcat不识别项目,但是这个项目确实是web项目 发现的过程: 然后依次产看项目的编译版本: 项目的依赖架包: 才发现: 解决方法: ...

  3. idea-----Intellij IDEA配置tomcat(非maven项目)

    Intellij IDEA配置tomcat(非maven项目) 引用: https://blog.csdn.net/springlovejava/article/details/78570241 ID ...

  4. 将Myeclipse非maven项目,导入到IDEA

    # 将Myeclipse非maven项目,导入到IDEA 1. 打开原项目,复制“.classpath”文件路径,在IDEA中打开项目时,选此文件路径 2. 进入项目转换界面,默认一步步完成 3. 导 ...

  5. 准备阶段-maven项目构建

    依据我现阶段对maven的了解,具使用POM管理项目和强大的repository资源管理库支持. 在项目建立初期,对网站的可拓展.高并发.易于管理做了评估.最终使用Maven 管理该项目 . 如下是m ...

  6. IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

    IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...

  7. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  8. IntelliJ IDEA使用心得之非Maven项目篇

    今天和大家分享下非Maven项目在IDEA中的配置方法,由于非Maven项目的配置方法基本相同,所以此篇只对不同点进行说明. 1.声明依赖库 我们可以使用库的方式来添加项目依赖,这是一个非常好的实践. ...

  9. Tomcat发布Maven项目遇到异常:java.lang.OutOfMemoryError: PermGen space

    前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1.  ...

随机推荐

  1. Docker容器技术的核心

    容器技术的核心 所谓容器,其实是由Linux Namespace.Linux Cgroups和rootfs三种技术构建出来的进程的隔离环境 对于Docker项目来说,其实最核心就是为待创建的用户进程: ...

  2. Redis主从复制的原理

    更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 在Redis集群中,让若干个Redis服务器去复制另一个Redis服务器,我们定义被复制的服务器为主服务器(mast ...

  3. HDU5988 - 2016icpc青岛 - G - Coding Contest 费用流(利用对数化乘为加

    HDU5988 题意: 有n个区域,每个区域有s个人,b份饭.现在告诉你每个区域间的有向路径,每条路有容量和损坏路径的概率.问如何走可以使得路径不被破坏的概率最小.第一个人走某条道路是百分百不会损坏道 ...

  4. ccpc网赛 hdu6705 path(队列模拟 贪心

    http://acm.hdu.edu.cn/showproblem.php?pid=6705 这是比赛前8题过的人数第二少的题,于是就来补了,但感觉并不难啊..(怕不是签到难度 题意:给个图,给几条路 ...

  5. CF1027D Mouse Hunt 思维

    Mouse Hunt time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  6. 阿里社招Java面试题总结——面试官分享

    面试题 1.Java中的内存溢出是如何造成的 2.gc的概念,如果A和B对象循环引用,是否可以被GC? 3.Error.Exception和RuntimeException的区别,作用又是什么? 4. ...

  7. win10 解决端口被占用

    查看端口 netstat -aon|findstr "端口" 通过PID查找应用程序 tasklist|findstr "PID" 关闭进程 taskkill ...

  8. Docker下kafka学习三部曲之二:本地环境搭建

    在上一章< Docker下kafka学习,三部曲之一:极速体验kafka>中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来 ...

  9. LVM(逻辑卷管理)

    一.LVM概念 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管 ...

  10. Session的创建和设置

    1.Session的获取: (1)无参的方法: protected void doGet(HttpServletRequest request, HttpServletResponse respons ...