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

使用Ant部署项目细节问题及解决办法

阅读更多
    说原创也谈不上,是个人在使用Ant的过程中遇到的问题及解决办法,收录一下。
    最近由IDE慢慢的向Ant转移,开始是不习惯。不过用着用着感觉还不错。之前一直用的Intellij Idea,什么都好,就两个不好,内存占用大,部署效率低(不像eclipse那样,ctrl+s,就自动编译,然后tomcat就自动部署了)。这也是我用Ant的理由,算是填补Intellij Idea的不足吧,还有junit的编写,现在又想写junid的冲动(虽然还没写多少  )。之间遇到了一些问题,还是google强大啊,不过还是搜了半天,再加上自己的尝试,终于都解决了。

    其中主要就是部署。
    一开始我的部署方式是。
    1.使用Ant启动tomcat。
    2.编译.
    3.拷贝需要的文件到指定的目录
    4.打包war包
    5.将war包部署到tomcat中
    tomcat不需要重新启动。不过。。。。每次重新部署都需要将近30秒,受不了。
    此处需要一个注意点,就是context的设置,在项目的web根目录下(即和WEB-INF同级的目录)新建一个META-INF目录,接着在此目录下新建一个context.xml文件。其内输入如下内容。
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" antiResourceLocking="true" antiJARLocking="true"></Context>

    原因是,如果没有这一段内容,tomcat会加载你部署的项目,而不过有些jar被加载了,那么当你undeploy的时候就无法成功了,必须要关闭tomcat,手动删除项目,这显然很郁闷。
加了如上内容,tomcat就会拷贝此项目到临时文件夹内,去加载那个拷贝,那么这样当前的目录就可以自由的重新部署了。
    缺点也说了,效率太低。

    做了如下改进。
    1.为你的项目指定一个虚拟目录,指向上面第三步里面的那个目录
    指定虚拟目录的方法。
    (1)在tomcat/conf/server.xml中,<Host>里面创建一个<Context>。
   
<Context path="/浏览器里面的访问根路径" docBase="项目路径" reloadable="true" ></Context>

     或者在tomcat\conf\Catalina\localhost目录下新建一个 项目名称.xml文件,输入
<Context docBase="项目路径" reloadable="true" ></Context>

    这里就不需要path了,文件名就是访问名称。此方法有个缺点,就是不能删除你的那个项目目录,如果删除了,tomcat会删除这个xml文件的。所以我选择了第一种方法。
    此处的\Catalina\localhost,是在server.xml设定的<Engine>名和<Host>名,可以在server.xml里面找到。
    这里也没有上面的antiResourceLocking="true" antiJARLocking="true"了,我尝试了n遍,如果加上了这两个属性,那么你修改类的时候不会重新加载的。

    这样,当你修改了类或文件后,只需要编译,拷贝,稍等片刻,tomcat就会自动部署了。编译,拷贝时间5秒左右,Ant一执行完,tomcat就基本重部署完了,比上面的30秒快了不少。
1
0
分享到:
评论

相关推荐

    Java Development with Ant.pdf

    - 使用Ant进行自动部署的技术细节 - 部署过程中可能出现的问题及解决方案 8. **综合案例分析** - 结合前几章知识点的实际应用案例 - 实现一个完整的Java项目的构建、测试、打包与部署 - 总结经验教训与最佳...

    ant安装简介

    #### 常见问题及解决方法 - **遇到“Unknown argument”错误**:这通常是由于命令行参数错误导致的。确保使用正确的命令格式,例如`ant -version`而非`ant -vesion`。 - **无法找到Ant命令**:检查`PATH`环境变量...

    Jenkins+SVN+Ant持续集成环境配置笔记.pdf

    在实际操作中,如遇到安装失败的问题,可以选择其他方法,例如本案例中提到的使用TortoiseSVN。Eclipse通过安装SVNsite插件与SVN进行集成,支持将项目检入检出版本库,并通过Team菜单与SVN进行交互。 接下来是...

    Java.Power.Tools(翻译原文).pdf

    - **部署应用程序**:讲解如何使用 Ant 将应用程序部署到服务器。 - **构建脚本引导**:探讨如何使用 Ant 的引导机制简化构建脚本的初始化过程。 - **在 Ant 中使用 Maven 依赖项**:介绍如何在 Ant 脚本中引用 ...

    ofelia用户手册

    手册还介绍了故障排除指南,这部分内容为用户在使用GOFF进行项目提交和管理过程中可能遇到的常见问题提供了帮助和解决办法。 总之,ofelia用户手册是为研究者和用户提供的一份详细的使用指南,涵盖了GOFF的安装和...

    EAS_BOS开发常见问题解答

    #### 问题3:如何在本地部署项目,后发布到服务器上? 部署项目到服务器是一项重要的工作,需要遵循一定的步骤: 1. **在BOS业务建模视图部署**: - 选择项目,然后点击“工具”&gt;“部署”。根据BOS版本的不同,...

    jmt项目参考jmt项目参考

    8. **问题解决**:分析项目中的代码,了解如何解决实际问题,提升解决问题的能力。 总的来说,"jmt项目参考jmt项目参考" 提供了一个全面学习和实践Java开发的平台,无论是对于初学者还是经验丰富的开发者,都能从中...

    Activiti中文用户文档

    - 构建工具:推荐使用Ant 1.8.1及以上版本。 - 开发工具:Eclipse 3.6.2及以上版本。 - **安装步骤**: - 下载Activiti的源码或发布包。 - 配置数据库连接信息。 - 使用Ant构建项目。 - 在Eclipse中导入项目...

    flex 全球天气预报小程序(自己开发)

    7. 构建和部署:使用Ant或Flash Builder等工具进行项目构建,以及如何发布和部署到服务器。 通过深入研究博主的博客文章和项目源码,我们可以更深入地理解Flex开发和全球天气预报应用的实现细节,同时也能提升自己...

    maven权威指南

    总结构建过程和遇到的问题及解决方案。 #### 六、一个多模块项目 **6.1 简介** 本章节将介绍如何使用Maven构建一个多模块项目。 **6.2 simple-parent项目** 设置parent项目来统一管理子项目的配置。 **6.3 ...

    Struts教程

    4. **Ant的使用**:演示如何执行Ant的任务来完成项目的编译和打包。 #### 十七、结论 在本教程的最后部分,我们将对整个学习过程进行总结,并对Struts框架的学习提出进一步的方向和建议。 #### 十八、技术背景 本...

    Maven笔记1

    如果你开发的通用组件被多个项目使用,通过邮件分发更新的jar包显然不是一种高效的方法。而项目进入测试阶段后,频繁的手动部署也变得极为繁琐。 为了解决这些困扰,我们引入了Maven。Maven是一个基于项目对象模型...

Global site tag (gtag.js) - Google Analytics