`
pengjianbo1
  • 浏览: 229540 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

使用Ant构建J2EE开发目录结构

    博客分类:
  • J2EE
阅读更多

企业应用程序由一个或多个 Web 应用程序模块、EJB 模块和资源适配器构成。其中也可能包括客户端应用程序。企业应用程序是由 application.xml 文件定义的,该文件是企业应用程序的标准 J2EE 部署描述符。如果应用程序包括 WebLogic Server 特定扩展,则该应用程序将由 weblogic-application.xml 文件进一步定义。包括客户端模块的企业应用程序还将具有 client-application.xml 部署描述符和 WebLogic 运行时客户端应用程序部署描述符。

 

  1. 对于开发目的,BEA 建议采用 WebLogic 拆分开发目录结构。拆分开发目录具有两个将源文件和输出文件分离开来的并行目录,而不是有一个单一的 EAR 归档文件或展开的 EAR 目录结构。这种目录结构已针对单个 WebLogic Server 实例上的开发进行了优化。
  2. 对于开发目的,BEA 还建议将独立 Web 应用程序和 Enterprise JavaBean (EJB) 作为企业应用程序的一部分进行打包,以便利用拆分开发目录结构。
  3. 对于生产目的,BEA 建议采用展开的(未归档的)目录格式。通过这种格式,不必重新部署应用程序就能更新文件。要更新归档文件,必须取消文件的归档,更新文件,然后重新将其归档和部署。
  4. 可使用 jar 实用工具将应用程序打包为带有 .ear 扩展名的 JAR 归档文件。归档文件易于分发,占用的空间也较小。EAR 文件含有应用程序的全部 JAR、WAR 和 RAR 模块归档文件,以及用于描述捆绑模块的 XML 描述符

BEA说了,独立 Web 应用程序也要作为企业应用程序的一部分进行打包,以便利用扩分开发目录结构。

  1. 首先创建一个WEB项目,项目名称testWebApp
  2. 在META-INF目录下创建企业应用程序的标准 J2EE 部署描述符 application.xml文件,内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
    <application>
    	<display-name>testWebApp</display-name>
    	<module>
    		<web>
    			<web-uri>testWebApp.war</web-uri>
    			<context-root>/</context-root>
    		</web>
    	</module>
    </application>
    
     
  3. 创建BEA Weblogic  特有weblogic.xml 部署描述符
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE weblogic-web-app
      PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
      "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
    
    <weblogic-web-app>
    	<context-root>/</context-root>
    </weblogic-web-app>
    
     
  4. 接下来最重要的就是编写ANT脚本。 
    <?xml version="1.0"?>
    <project name="testWebApp" default="dist" basedir=".">
    	<!--主要的系统环境属性-->
    	<property environment="env"/>
    	<!--取window,unix...的环境变量-->
    	<property name="java.home" value="${env.JAVA_HOME}"/>
    	<property name="ant.home"  value="${env.ANT_HOME}"/>
    	<property name="project.home" value="." />
    	<property name="project.name" value="${ant.project.name}" />
    	<property name="src.home" value="${project.home}/src" />
    	<property name="lib.home" value="${project.home}/WebRoot/WEB-INF/lib" />
    	<property name="classes.home" value="${project.home}/classes" />
    	<property name="dist.home" value="${project.home}/dist" />
    	<property name="web.home" value="${project.home}/WebRoot" />
    	<property name="build.home" value="${project.home}/build" />
    	<property name="build.classes" value="${build.home}/WEB-INF/classes" />
    	<property name="build.lib" value="${build.home}/WEB-INF/lib" />
    
    	<path id="compile.classpath">
    		<fileset dir="${lib.home}">
    			<include name="*.jar" />
    		</fileset>
    		<pathelement path="${java.home}/lib/tools.jar"/>
    	</path>
    
    	<target name="init" description="初始化并创建目录">
    		<echo>初始化并创建目录</echo>
    		<mkdir dir="${build.home}" />
    		<mkdir dir="${build.home}/WEB-INF" />
    		<mkdir dir="${build.home}/WEB-INF/classes" />
    		<mkdir dir="${build.home}/WEB-INF/lib" />
    		<mkdir dir="${dist.home}" />
    		<mkdir dir="${dist.home}/${project.name}/META-INF" />
    		<mkdir dir="${dist.home}/${project.name}/${project.name}.war" />
    	</target>
    
    	<target name="clean" description="删除所有目录与文件">
    		<echo>清理所有目录与文件</echo>
    		<delete dir="${build.home}" />
    		<delete dir="${dist.home}" />
    
    	</target>
    
    	<target name="compile" depends="init" description="编译JAVA文件">
    		<echo>编译JAVA文件</echo>
    		<javac srcdir="${src.home}" destdir="${build.classes}"  debug="yes" source="1.5">
    			<classpath refid="compile.classpath" />
    			<compilerarg value="-Xlint:unchecked" />
    
    		</javac>
    	</target>
    
    
    	<target name="dist" depends="compile" description="构建展开目录结构-开发模式">
    		<copy todir="${dist.home}/${project.name}/META-INF">
    			<fileset dir="${web.home}/META-INF" />
    		</copy>
    		<echo>复制JSP,XML等文件</echo>
    		<copy todir="${dist.home}/${project.name}/${project.name}.war">
    			<fileset dir="${web.home}" />
    		</copy>
    		<echo>删除META-INF</echo>
    		<delete dir="${dist.home}/${project.name}/${project.name}.war/META-INF" />
    	</target>
    
    	<target name="ear" depends="clean,dist" description="构建可发布ear包">
    		<jar destfile="${dist.home}/${project.name}.war" basedir="${dist.home}/${project.name}/${project.name}.war" />
    		<ear destfile="${dist.home}/${project.name}.ear" appxml="${dist.home}/${project.name}/META-INF/application.xml">
    			<fileset dir="${dist.home}">
    				<include name="${project.name}.war" />
    			</fileset>
    		</ear>
    		<echo>清理临时产生目录</echo>
    		<delete dir="${dist.home}/${project.name}" />
    		<echo>删除临时生成的WAR包</echo>
    		<delete file="${dist.home}/${project.name}.war" />
    	</target>
    
    </project>
    
      
  5. 分别打展开目录结构与可发布Ear包部署到weblogic 测试成功

 

分享到:
评论

相关推荐

    ant学习配套电子书教程

    3、跨平台,java类路径和目录结构都是以可移植的方式处理. 4、速度快,向编译和打包这样的java常规工作都可以在ant的jvm中进行,节省了启动其他jvm所耗费的时间. 5、集成junit,适合进行xp开发模式所提倡的单元测试. ...

    ant1.9资源

    利用Ant构建和部署Java工程 Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。 1. 利用Ant的javac任务来编译java程序 Ant的javac任务用于...

    iuhyiuhkjh908u0980

    教程包含基本的步骤像创建目录结构,建立build.xml文件来使用Ant构建工具创建程序.接着我们会解释在这个程序中需要的Java,Jsp和配置文件. 创建项 ... by Checkmate 2009-03-23 回复 (6) ivy中文参 ... 安装ivy主要有...

    java开放源码编程-符书源码

    而且,书中的实例使通过重新创作著名的Sun Java 蓝图——PetStore应用,将JUnit、Ant、Hibernate、WebWork、SiteMesh、XDoclet以及Lucene等工具的应用演绎得淋漓尽致,有利于读者在开发过程中提高可用性、结构简洁性...

    软件工程师Java班课程

    Java应用构建工具:Apache Ant / … 掌握JSP 1.3/2.0和Servlet 2.3/2.4编程及其在Web层 Java B/S商务项目开发(基于JSP/Servlet,全真案例第二个项目) 2人左右为一个项目组,项目大小为10人*工作日左右 熟练使用...

    Maven权威指南 很精典的学习教程,比ANT更好用

    添加J2EE依赖 5.7. 小结 6. 一个多模块项目 6.1. 简介 6.1.1. 下载本章样例 6.2. simple-parent 项目 6.3. simple-weather 模块 6.4. simple-webapp 模块 6.5. 构建这个多模块项目 6.6. 运行Web应用 ...

    springboot参考指南

    构建ApplicationContext层次结构(添加父或根上下文 iv. 62.4. 创建一个非web(non-web)应用 ii. 63. 属性&配置 i. 63.1. 外部化SpringApplication配置 ii. 63.2. 改变应用程序外部配置文件的位置 iii. 63.3. 使用...

    Jetty中文手册

    使用构建工具 如何在Maven中使用Jetty 如何在Ant中使用Jetty Maven和Ant的更多支持 Jetty Maven插件(Plugin) Jetty Jspc Maven插件(Plugin) Maven web应用工程原型 Ant Jetty插件(Plugin) 使用集成开发环境...

    WorkflowComponents

    是工作流创作工具,它是为LearnSphere项目构建的社区软件基础结构的一部分。 该平台提供了一种创建自定义分析并与新的以及现有的数据格式和存储库进行交互的方法。 附录A.技术细节 一,依赖 Ant 1.9或更高 Java ...

Global site tag (gtag.js) - Google Analytics