`
sundful
  • 浏览: 1244931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Web应用中使用ANT在线编译不用重起tomcat的方法

    博客分类:
  • Java
阅读更多

在WEB应用中可通过ANT的API调用ant的工程配置文件来在线编译java文件,在工程配置文件中(如build.xml)将编译的class文件或者变更的xml文件直接复制到WEB-INF\classes中的对应目录,不用重新启动tomcat.

       由于在平台应用中经常由用户定义表结构,并由表结构生成java实体类和hibernate映射文件,通过热编译部署的方式 可不用停止WEB应用,下面是在Java中调用ant的代码,注意这种方式不是调用ant的批处理的,也不提倡这样做,下面的方式可使用户通过点击WEB页面上的按钮来调用ANT编译:

package org.apache.easframework.common;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;

public class CompileJava {

 

 public static synchronized boolean compile(String buildFilePath, String logFilePath) {
  File buildFile = new File(buildFilePath);
  Project project = new Project();

  DefaultLogger consoleLogger = new DefaultLogger();
  try {
   FileOutputStream fs = new FileOutputStream(logFilePath);
   PrintStream ps = new PrintStream(fs);
   consoleLogger.setErrorPrintStream(ps);
   consoleLogger.setOutputPrintStream(ps);
  } catch (FileNotFoundException e1) {

   e1.printStackTrace();
  }

  consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
  project.addBuildListener(consoleLogger);

  try {
   project.fireBuildStarted();
   project.init();
   ProjectHelper helper = ProjectHelper.getProjectHelper();
   helper.parse(project, buildFile);
            System.out.println("默认target:");
            System.out.println(project.getDefaultTarget());  //默认的target是help
   project.executeTarget("all");  //调用的task是all
   project.fireBuildFinished(null);
   return true;

  } catch (BuildException e) {
   project.fireBuildFinished(e);
   return false;
  }

 }
 
 public static String startCompile(String buildFile,String logFile)
 {
  if(CompileJava.compile(buildFile, logFile))
  {
   return "编译成功!";
  }
  else
  {
   return "编译失败!";
  }
 }

 

/**
  * @param args
  */
 public static void main(String[] args) {
  System.out.println("开始编译...");
   
  boolean b = CompileJava.compile("D:/easdev/build/userbuild.xml",
    "D:/easdev/build/userbuild.log");
  if(b)
  {
   System.out.println("编译成功!");
  }
  else
  {
   System.out.println("编译失败!");
  }
  System.out.println("结束编译...");

 }

}


 

下面是Java页面通过dwr调用此类的代码:

<%@ page contentType="text/html; charset=GBK"%>

<%@ page import="org.apache.easframework.common.*" %>
<%@ taglib prefix="ww" uri="webwork" %>
<%@ include file="/common/head.jsp"%> 
<script type='text/javascript' src='<%=request.getContextPath()%>/js/util.js?Math.random();'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/js/engine.js?Math.random();'></script>
<script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/CompileJava.js?Math.random();'></script> 
<meta http-equiv="epires" content=0>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<script language="JavaScript">
<!-- 
function compileJava()
{
 CompileJava.startCompile("D:/easdev/build/userbuild.xml","D:/easdev/build/userbuild.log",callback);
 
  // document.listForm.elements['pageLoaderInfo.custSort'].value = sortValue;
  // document.listForm.operate.value="selectPageList";
  // document.listForm.submit();
}
function callback(data)
{
   alert(data);
}
-->
</script>
 
<table><tr><td><input type="button" name="compile" value="编译" class="mybutton" onClick="compileJava()"></td></tr></table>
<%@include file="/common/tail.jsp"%>

 

上面在编译成功时弹出编译成功的JS提示,否则提示编译失败

 

另外需要说明的是,要实现在线ANT编译,需要把ant工具相关的一些jar包复制到tomcat的shared\lib或者WEB-INF\lib中.

评论

相关推荐

    Ant编译Tomcat源码、MyEclipse导入Tomcat源码、执行Tomcat源码启动Tomcat

    本篇将详细介绍如何使用Ant编译Tomcat源码,以及如何在MyEclipse环境中导入并运行Tomcat源码。 首先,Ant是Apache软件基金会开发的Java项目自动化构建工具,它能够执行编译、测试、打包等任务。在Apache Tomcat的...

    ant+tomcat

    标题"ant+tomcat"暗示了我们将讨论如何使用Ant来管理和部署Tomcat中的Web应用。Ant以其XML格式的构建文件(build.xml)闻名,这使得项目构建的流程可以被清晰地定义和重用。 描述中的"ant+tomcatant+tomcatant+...

    java ant发布项目到tomcat

    在本场景中,我们将探讨如何使用Ant来发布一个Web项目到Apache Tomcat服务器。 首先,理解Ant的基本结构是至关重要的。一个Ant项目通常包含一个build.xml文件,这是Ant执行的所有指令的中心。在这个文件中,我们...

    ant编译java web的build.xml文件

    《Ant构建Java Web应用:深度解析build.xml》 在软件开发过程中,自动化构建工具起着至关重要的作用,它们能够帮助开发者高效地管理项目,确保代码的编译、测试和部署等流程的一致性和可靠性。Apache Ant是Java领域...

    Ant远程部署tomcat脚本

    在Java Web开发中,Ant经常被用来打包、测试和部署Web应用。本文将详细介绍如何使用Ant脚本来实现远程部署到Tomcat服务器。 首先,Ant脚本的基础结构是XML格式,如以下示例所示: ```xml &lt;project name="kit.web...

    ant远程上传并部署tomcat

    标题中的“ant远程上传并部署tomcat”是指使用Apache Ant工具执行自动化构建任务,将本地的Web应用(如WAR或EAR文件)传输到远程Linux服务器的Tomcat应用服务器上进行部署,并随后重启Tomcat服务以使更改生效。Ant是...

    贯通Java Web开发三剑客Eclipse+Tomcat+Ant整合开发.(党海峰)

    在IT行业中,Java Web开发是构建企业级应用的重要领域,而Eclipse、Tomcat和Ant则是这个领域中的“三剑客”,它们各自扮演着不可或缺的角色。这篇内容将深入探讨这三者的整合开发,并以党海峰的教程为指导,帮助...

    使用Ant编译打包

    **Ant编译打包详解** Ant 是 Apache 软件基金会的一个开源项目,它是一个基于Java的构建工具,类似于Make,但更为现代且专为Java设计。Ant使用XML来描述构建过程,包括编译、测试、打包和部署等任务,使得开发者...

    ant1-9-4和tomcat7-0-57包

    Ant可以用来编译源码、打包Web应用(WAR文件),然后使用Ant的deploy任务将WAR文件部署到Tomcat服务器上。这样,整个构建和部署流程可以通过自动化脚本完成,极大地提高了开发效率。 总结来说,Ant和Tomcat是Java ...

    使用ant部署eclipse开发的web工程到tomcat

    本篇文章将深入探讨如何使用Apache Ant工具部署由Eclipse开发的Web工程到Apache Tomcat服务器上。Ant是一个基于Java的构建工具,它允许通过XML格式的构建文件(如`build.xml`)来定义构建任务,极大地简化了项目管理...

    tomcat6编译

    8. **学习价值**:编译Tomcat6不仅可以提升对Java Web服务器内部机制的理解,还有助于深入学习Java编程、软件构建流程以及服务器管理和优化技巧。 总的来说,“Tomcat6编译”是一个涉及Java Web开发基础、软件工程...

    编译tomcat源码所需jar包

    在IT行业中,Tomcat是一款广泛使用的开源Web服务器和应用服务器,尤其在Java环境下,它扮演着重要的角色。本文将深入探讨“编译Tomcat源码所需jar包”这一主题,帮助开发者了解如何从源码构建Tomcat,以及在这个过程...

    使用Maven开发Java Web应用

    本指南将详细介绍如何在Eclipse环境中使用Maven进行Java Web应用的开发。 一、Maven的优势与基本概念 Maven通过项目对象模型(Project Object Model,POM)来管理项目配置,包括依赖、构建过程、插件等。它自动处理...

    ant启动关闭tomcat

    在本文中,我们将深入探讨如何使用Ant通过XML配置来启动和关闭Tomcat服务器,这一技能对于任何从事Java Web开发的人员来说都是至关重要的。 ### 一、Ant与Tomcat简介 #### Ant Ant(Another Neat Tool)是一种...

    ant自动编译,上传,启动,部署,启动

    在Java开发中,Ant被广泛用于自动化构建过程,包括编译、打包、测试和部署等任务。这个压缩包文件"ant-autodeploy"很可能包含了Ant配置文件、脚本和相关的说明文档,用于实现自动化的编译、上传、启动和部署流程。 ...

    编译tomcat依赖的包

    在IT行业中,Tomcat是一个非常重要的应用服务器,它主要用于部署和运行Java Servlet和JavaServer Pages (JSP)。本文将详细讲解如何编译Tomcat依赖的包,以便于理解其工作原理并进行自定义配置。 首先,让我们了解...

    tomcat源码编译所需jar包

    在编译Tomcat源码时,需要确保系统已安装Ant,并且在项目环境中配置了相应的ANT_HOME环境变量。 二、Java开发工具包(JDK) Tomcat源码是用Java编写,因此,JDK是必不可少的。你需要一个支持你所编译的Tomcat版本的...

    编译tomcat6所需的jar包

    在IT行业中,Tomcat是一款广泛使用的开源Java应用服务器,特别是对于Servlet和JSP的应用部署。当我们需要对Tomcat进行自定义编译或者扩展其功能时,了解如何获取和使用必要的jar包是至关重要的。本篇将详细介绍...

Global site tag (gtag.js) - Google Analytics