`
pengjianbo1
  • 浏览: 232577 次
  • 性别: 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打包J2EE程序

    通过以上步骤,我们成功地使用Ant构建了一个J2EE项目,并将其打包为WAR文件。这种构建方式不仅能够提高开发效率,还保证了构建过程的一致性和可重复性。此外,由于Ant的灵活性,可以根据具体需求进一步定制构建过程...

    使用AppFuse快速构建J2EE应用.doc

    总结来说,AppFuse作为一个快速开发工具,可以帮助开发者以高效的方式构建J2EE应用。通过理解并熟练运用其提供的各种目标和工具,可以大大提升开发效率,同时保持代码的规范性和可维护性。本文提供的示例和步骤是...

    J2EE开发学习文档描述总纲目.doc

    **J2EE开发学习文档描述总纲目** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上的企业级应用开发框架,它...通过学习这些内容,开发者能够全面了解和掌握J2EE开发,从而高效地构建复杂的企业级应用程序。

    在eclipse中使用ant灵活构建web应用.docx

    创建`build.xml`文件是Ant构建的关键,这个文件定义了构建过程中的各个任务。文件内容包括声明属性(如war.dir),定义类路径(classpath),以及具体的构建目标(target)。例如,声明类路径时,可以使用`&lt;fileset&gt;...

    开发J2EE程序需要的JAR包包括(ant,hibernate,structs,spring)

    这里提到的四个关键组件——Ant、Hibernate、Struts和Spring,都是Java世界中广泛使用的工具和框架,它们各自服务于不同的目的,共同构成了J2EE开发的重要支柱。 1. **Ant**:Ant是一个由Apache软件基金会开发的...

    基于JBOSS的J2EE开发(PDF)

    11. **部署与自动化**:介绍使用Ant、Maven或Gradle等工具自动化构建和部署J2EE应用到JBOSS的流程。 12. **故障诊断与日志管理**:讲解如何利用JBOSS的日志系统进行问题定位,以及常见错误的解决策略。 通过学习这...

    ANT构建解决方案-应用指南

    ### ANT构建解决方案应用指南 #### 一、Ant概述与安装配置 **Ant**(Another Neat Tool)是一款由Apache组织提供的开源项目构建工具,适用于Java应用程序的自动化构建过程。其最大的特点是跨平台性,能够在Windows...

    J2EE OA项目开发日记.doc

    文章涵盖了从项目准备到编码实施的关键环节,并提到了多个相关技术,如Java语言、JSP、Servlet、J2EE、EJB、EJB-QL、Struts、JBoss应用服务器以及Ant构建工具。对于Java开发人员来说,这是一个深入理解项目开发流程...

    用Ant实现Java项目的自动构建和部署

    本文将深入讲解如何利用Ant来实现Java项目的自动构建和部署,包括对J2ME和J2EE项目的处理。我们将通过两个简单实例,一步步引导你熟悉Ant的使用。 首先,理解Ant的基本概念是至关重要的。Ant是一个基于XML的构建...

    基于java的开发源码-入门级j2ee开源项目 simplejee.zip

    7. **IDE支持**:如Eclipse、IntelliJ IDEA等,它们为J2EE开发提供了强大的工具支持,包括代码提示、调试、构建和部署等功能。 8. **版本控制**:项目可能使用Git等版本控制系统,以便多人协作和版本管理。 9. **...

    J2EE WEB开发指南

    - **过程**:打包过程通常包括创建必要的文件夹结构、添加组件文件和配置文件,然后使用构建工具(如Ant)进行打包。 #### 四、开发者角色 - **开发人员**:负责编写和测试组件代码。 - **系统架构师**:负责设计...

    j2ee 架构设计 (SSH典型结构解析)

    总的来说,SSH架构设计提供了一种结构化的方法来构建大型企业级应用,通过解耦各个组件,提高了开发效率,降低了维护成本。这种架构不仅能够应对复杂的业务需求,还能随着业务扩展而灵活调整,确保项目的稳定性和可...

    apache-ant-1.7.1

    7. **fetch.xml**和**get-m2.xml**: 这些是Ant构建脚本,通常用于自动化获取依赖库或者与Maven相关的任务。fetch.xml可能用于下载项目依赖,而get-m2.xml可能用于与Maven仓库交互。 8. **etc**目录:可能包含Ant...

    j2ee环境配置详情

    1. 使用Ant命令行工具执行`build.xml`文件中的构建任务,例如: ``` ant build ``` 2. 将构建好的Web应用部署至Tomcat的`webapps`目录下。 3. 在Eclipse中创建项目,使用MyEclipse插件可以方便地管理项目结构、...

    j2ee框架技术课设报告.doc

    - **开发工具**:通常使用Eclipse、IntelliJ IDEA等IDE进行开发,配合Maven或Ant等构建工具。 #### 四、需求分析 - **功能需求**:包括用户登录、注册、信息浏览、信息修改等功能。 - **系统需求**:如系统安全性...

    J2EE Tutorial中文版

    5. **Ant**:早期的构建工具,现在仍被一些项目使用。 **五、J2EE最佳实践** 1. **模块化设计**:将应用拆分成独立的模块,便于维护和扩展。 2. **分层架构**:遵循MVC模式,分离视图、控制和模型。 3. **设计...

    IBM J2EE培训资料

    使用持续集成工具(如Jenkins、GitLab CI/CD)和自动化构建工具(如Ant、Maven)可以加速开发流程,确保代码质量和版本控制。 通过深入学习IBM J2EE培训资料,开发者将能够熟练掌握J2EE平台的各个方面,从而能够...

    【J2EE OA】 项目开发日记.docx

    J2EE OA项目开发涉及到了多个关键技术和工具,如Java语言、JSP、Servlet、J2EE、EJB、Struts框架、JBoss Application Server以及Ant等。通过这些技术的合理运用,可以有效地构建出稳定、高效的企业级办公自动化系统...

Global site tag (gtag.js) - Google Analytics