当前位置: 首页 > news >正文

整理一个ANT在J2EE项目中的应用,含预编译JSP和打包WAR/EAR文件!

首先,假设我们的项目的结构如下,相同的目录大家可以自行扩展!
${project.root}
|
+-- build/ <-- WAR/EAR档的目录
+-- classes/ <-- 编译的输出目录,与JBuilder兼容
+-- src/ <-- Java源文件目录
+-- web/ <-- WEB Content 目录
| |
| +--pages/ <-- JSP 文件目录
| +--WEB-INF/ <-- web.xml 等配置文件
+-- ejb <-- EJB Content 目录
| |
| +--META-INF/ <-- EJB 配置文件
+-- ear <-- EAR Content 目录
| |
| +--META-INF/ <-- EAR 配置文件
|-- lib <-- 项目所要用到的library

接下来第一步,就是要先定义好一些全局的参数,以便以后更改起来方便,风格
大家自己选择好了,我用的
是如下的方式:

(1) 给出项目的目录:


    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <!--// project directories //-->
<property name="dir.project" value="D:/Code/MyProject"/>
<property name="dir.project.lib" value="${dir.project}/lib"/>
<property name="dir.project.src" value="${dir.project}/src"/>
<property name="dir.project.web_module" value="${dir.project}/web"/>
<property name="dir.project.ejb_module" value="${dir.project}/ejb"/>
<property name="dir.project.ear_module" value="${dir.project}/ear"/>

<!--// compile, build and deploy directories //-->
<property name="dir.project.compile" value="${dir.project}/classes"/>
<property name="dir.project.compile.jspcache" value="${dir.project.compile}/jspcache"/>
<property name="dir.project.build" value="${dir.project}/build"/>

<!--// J2EE Container //-->
<property name="dir.appserver.tomcat.home" value="D:/J2EE_HOME/AppServer/Tomcat"/>
<property name="dir.appserver.oc4j.j2ee.home" value="D:/J2EE_HOME/AppServer/OC4J/j2ee/home"/>

(2) 定义Java Source的编译选项
 

(3) 如果需要 import EJB library 的话,给出下面的定义,后面会用到
  

(4) 给出部署WAR/EAR文件的名称:


    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->
<!--// Deployment //-->
<property name="deploy.file.ejb_module" value="MyApp_EJB.jar" />
<property name="deploy.file.web_module" value="MyApp_WEB.war" />
<property name="deploy.file.ear_module" value="MyApp.ear" />

(5) 给出CLASSPATH的定义,引入相关的Library和项目编译生成的Java Classes


(6) 基本的clean和init的task

    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->
<target name="clean">
<delete dir="${dir.project.build}"/>
<delete dir="${dir.project.compile.jspcache}"/>
<delete dir="${dir.project.compile}"/>
<delete dir="${dir.project.web_module}/WEB-INF/classes"/>
<delete dir="${dir.project.web_module}/WEB-INF/lib"/>
</target>

<target name="init">
<mkdir dir="${dir.project.compile}"/>
<mkdir dir="${dir.project.compile.jspcache}"/>
<mkdir dir="${dir.project.web_module}/WEB-INF/classes"/>
<mkdir dir="${dir.project.web_module}/WEB-INF/lib"/>
<mkdir dir="${dir.project.build}"/>
</target>

(7) 编译Java Source

    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <target name="src_compile" depends="init">
<!--// compile the Java source //-->
<javac srcdir="${dir.project.src}"
destdir
="${dir.project.compile}"
encoding
="${opt.compile.encoding}"
source
="${opt.compile.source}"
target
="${opt.compile.target}"
deprecation
="${opt.compile.deprecation}"
debug
="${opt.compile.debug}"
optimize
="{opt.compile.optimize}" >
<classpath refid="CLASSPATH"/>
<include name="**/*.java"/>
</javac>
<!--// copy the classpath resources //-->
<copy todir="${dir.project.compile}">
<fileset dir="${dir.project.src}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>

(8) 预编译JSP文件,可选择基于Tomcat或是Oracle Application Server


(9) 开始进行compile,make 和 build,并生成部署档案

相关文章:

  • Taro解决低版本内核 兼容ES6语法问题Object.entries is not a function
  • git add . 增加所有文件到缓存区 git diff 什么也没有 因为无法比较差异 如果git add 某一个文件 则可以查看变动文件
  • 英语标准答案
  • react hooks 之 useState
  • react hooks useEffect
  • 去掉 deplate(Viki) 生成的 html 文件行尾多余的空格。
  • react hooks useContext
  • 使用Flash Lite 制作手机主题
  • react hooks 规则以及自定义hooks的实现
  • react hooks reducer
  • react hooks 额外的钩子函数
  • 《程序员》杂志06年2月文章:Flash Lite挑战J2ME
  • CSDN Blog升级公告
  • koa文件上传2
  • 怎样成为一个Flash Lite Developer (开发篇)
  • css的样式优先级
  • CSS实用技巧干货
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • exports和module.exports
  • Javascript编码规范
  • Java小白进阶笔记(3)-初级面向对象
  • oschina
  • python docx文档转html页面
  • React-redux的原理以及使用
  • Vim Clutch | 面向脚踏板编程……
  • Vue学习第二天
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 老板让我十分钟上手nx-admin
  • 用简单代码看卷积组块发展
  • ionic入门之数据绑定显示-1
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # include “ “ 和 # include < >两者的区别
  • #include<初见C语言之指针(5)>
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (ros//EnvironmentVariables)ros环境变量
  • (分布式缓存)Redis哨兵
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (接口自动化)Python3操作MySQL数据库
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .aanva
  • .net 7 上传文件踩坑
  • .NET Core 中的路径问题
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET中winform传递参数至Url并获得返回值或文件
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [C++]Leetcode17电话号码的字母组合
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [Django 0-1] Core.Checks 模块