`
pengyeer
  • 浏览: 32885 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

[转]使用Ant进行项目构建之二:规划我们的项目目录结构

阅读更多

前面已经把ant的基本运行环境搭建好了,在接下来的工作中,将一步一步的开始构建我们的项目。

选择项目目录结构:

一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的事情,可能你会很习惯由IDE自动创建的目录结构,如Elcipse或JB,但有些时候,这样的目录结构可能并不是最好的,所以,在项目开始的时候,我们要对我们的目录结构进行合理的规划,这样,我们的项目在向前推动的过程中,才会井然有序。我个人比较推崇按项目模块来划分目录结构,这样整个项目不管进行到什么时候,也不管项目中有多少类,都可以很方便的找到你想要的资源。当然,对于一个项目来说,都有一个核心支撑模块来构成整个项目的骨架,那我们就从这个骨架开始,来构建我们的项目。

1.在你工作的任意硬盘上创建目录:x:/project,并在x:/project 下新建四个xml文件,文件名分别命名为:build-basic-environment.xml,build-common-java.xml,build.xml.build-common.xml

2.其中,builde-basic-environment.xml为进行系统构建的基础环境变量的设置,当然,可能有些ant用户喜欢使用.properties文件进行这些变量的描述,但我们个更喜欢以标准的xml格式来描述,并推荐使用这一方式。本文件的基本形式如下:

<!---->

<!---->
xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <project name="basic-environment" basedir=".">  
  3.     <property name="project.name" value="myproject">  
  4.     property>  
  5.     <property environment="env" />  
  6.     <property name="template.dir" value="${basedir}/template"/>  
  7. project>  

<project basedir="." name="basic-environment"></project>

当然 ,以后我们的全局信息,可以不断的添加到本文件中。

3.build-common.xml,在本构建文件中,书写与模块相关的基础信息,虽然这些都是一些很简单的基础信息,但对整个项目来说,却像骨架一样。文件如下:

<!---->
<project name="common"></project>

<!---->
<project name="common"></project>

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="common">  
  3.   
  4.     <property name="project.dir" value=".."></property>  
  5.     <property name="project.version" value="1.0.0"></property>  
  6.     <property name="packages" value="com.myproject"></property>  
  7. <!-- ================================================================ -->  
  8.     <property name="build.dir" value="${basedir}/build" />  
  9.     <property name="dist.dir" value="${basedir}/dist" />  
  10.     <property name="bak.dir" value="${basedir}/bak" />  
  11.     <property name="doc.dir" value="${basedir}/doc" />  
  12.     <property name="class.dir" value="${build.dir}/classes"></property>  
  13.     <property name="javac.debug" value="true"></property>  
  14.     <property name="src.dir" value="${basedir}/src"></property>  
  15.   
  16.   
  17.     <property name="test.dir" value="${basedir}/test"></property>  
  18.     <property name="test.data.dir" value="${test.dir}/data"></property>  
  19.     <property name="test.reports.dir" value="${test.dir}/reports">  
  20.     </property>  
  21.     <property name="test.src" value="${test.dir}/src"></property>  
  22.     <property name="build.test.dir" value="${build.dir}/test">  
  23.     </property>  
  24.     <property name="build.web.dir" value="${build.dir}/web"></property>  
  25.     <property name="WebRoot.dir" value="${basedir}/WebRoot"></property>  
  26.     <property name="generator.dir" value="${basedir}/generator">  
  27.     </property>  
  28.     <property name="metada.dir" value="${basedir}/metada"></property>  
  29.        
  30.     <property name="lib.dir" value="${project.dir}/lib" />  
  31.        
  32.     <!-- =================================    
  33.         target:  系统路径                    
  34.         =================================   -->  
  35.     <path id="project.class.path">  
  36.         <pathelement path="${classpath}" />  
  37.         <fileset dir="${lib.dir}">  
  38.             <include name="*.jar" />  
  39.         </fileset>  
  40.     </path>  
  41.     <!-- =================================    
  42.         target:  测试路径                    
  43.         =================================   -->  
  44.     <path id="test.class.path">  
  45.         <path refid="project.class.path"></path>  
  46.         <pathelement path="${lib.dir}/junit.jar" />  
  47.         <pathelement path="${build.test.dir}" />  
  48.         <pathelement path="${class.dir}" />  
  49.     </path>  
  50. </project>  





4.接下来,我们来看build-common-java.xml文件,在这个文件里面,我们主要进行编译,打包,测试,发布等工作。今天发布的只是与项目目录结构构建相关的脚本。

<!----><mkdir></mkdir>
<!----> 

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="build-common-java">  
  3.     <import file="build-common.xml" />  
  4.     <target name="init" description="系统构建目录初始化">  
  5.         <mkdir dir="${build.dir}" />  
  6.         <mkdir dir="${dist.dir}" />  
  7.         <mkdir dir="${bak.dir}" />  
  8.         <mkdir dir="${src.dir}">  
  9.         </mkdir>  
  10.         <mkdir dir="${doc.dir}" />  
  11.         <mkdir dir="${doc.dir}/source" />  
  12.         <mkdir dir="${doc.dir}/api" />  
  13.         <mkdir dir="${class.dir}" />  
  14.         <mkdir dir="${test.dir}" />  
  15.         <mkdir dir="${test.data.dir}" />  
  16.         <mkdir dir="${test.reports.dir}" />  
  17.         <mkdir dir="${test.src}" />  
  18.         <mkdir dir="${build.test.dir}" />  
  19.         <mkdir dir="${WebRoot.dir}" />  
  20.         <mkdir dir="${generator.dir}" />  
  21.         <mkdir dir="${metada.dir}" />  
  22.     </target>  
  23. </project>  


5.下面,我们在x:/project目录下新建文件夹template,并在本文件夹下新增以下结构的xml文件,名为:build.xml

<!---->
<project basedir="." name="modeltemplate"></project>

<!---->

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="modeltemplate" basedir=".">  
  3.     <property name="component.name" value="modeltemplate"></property>  
  4. <import file="../build-common-java.xml" />  
  5.   
  6. </project>  



  <property name="component.name" value="modeltemplate"></property>

6.下面我们开始书写x:/project/build.xml脚本:

<!---->

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="zaodian" basedir=".">  
  3.     <import file="build-basic-environment.xml" />  
  4.   
  5.     <!-- - - - - - - - - - - - - - - - - -    
  6.           target: useage                         
  7.          - - - - - - - - - - - - - - - - - -->  
  8.     <target name="help">  
  9.         <echo message="/**-------------------------------------------------------------------------" />  
  10.         <echo message="* 项目名称:${project.name} 网络支持系统" />  
  11.         <echo message="* 作者:宋海鹏" />  
  12.         <echo message="* 与作者联系:E_Mail:ecsun@sohu.com,QQ:82676683" />  
  13.         <echo message="----------------------------------------------------------------------------*/" />  
  14.   
  15.   
  16.         <echo message="|---> 系统构建任务列表" />  
  17.         <echo message="|-  --> [ init ]               --> 系统构建初始化" />  
  18.            
  19.         <echo message="------------------------------------- END --------------------------------------" />  
  20.     </target>  
  21.     <!-- - - - - - - - - - - - - - - - - -    
  22.               target: init   系统初始化                 
  23.              - - - - - - - - - - - - - - - - - -->  
  24.     <target name="init">  
  25.            
  26.     </target>  
  27.        
  28.     <!-- - - - - - - - - - - - - - - - - -    
  29.           target: create-new-model 创建新模?          
  30.          - - - - - - - - - - - - - - - - - -->  
  31.     <target name="create-new-model">  
  32.         <echo level="info">  
  33. +-------------------------------------------------------------+   
  34. |    -- 欢迎使用${project.name}新模块生成向?!  --                |   
  35. |                                                             |   
  36. |      请正确回答以下问题,这些问题对自对生成新模块非常关键             |   
  37. +-------------------------------------------------------------+   
  38.             </echo>  
  39.         <input message="您希望新模块使用什么名字[model.name]?(注:模块名只能为英文)" addProperty="model.name">  
  40.         </input>  
  41.         <mkdir dir="${basedir}/${model.name}" />  
  42.         <copy todir="${basedir}/${model.name}">  
  43.             <fileset dir="${template.dir}/">  
  44.                 <include name="build.xml" />  
  45.             </fileset>  
  46.         </copy>  
  47.         <ant dir="${basedir}/${model.name}" target="init">  
  48.         </ant>  
  49.         <replaceregexp flags="g">  
  50.             <regexp pattern="modeltemplate" />  
  51.             <substitution expression="${model.name}" />  
  52.             <fileset dir="${basedir}/${model.name}">  
  53.                 <include name="build.xml" />  
  54.             </fileset>  
  55.         </replaceregexp>  
  56.     </target>  
  57.        
  58. </project>  


<project basedir="." name="zaodian"></project>

<target name="create-new-model"></target>

好了,现在我们所有的工作做完了,在目录x:/project键入命令:

ant create-new-model,输入你想要使用的模块名,看会出现什么结果?下载附件试一试?


 

  • article.rar (2.4 KB)
  • 描述: 本附件是目前进行自构建的基础目录结构。
  • 下载次数: 67
    分享到:
    评论

    相关推荐

      使用ant构建helloworld

      使用ant构建helloworld,怎么使用ant构建一个项目,包括build。xml的结构和编写

      java Ant 教程

      Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。 1.跨平台性。Ant是纯Java语言编写的,所示具有很好的跨平台性。 2.操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件...

      ant1.9资源

      Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一. 安装与配置 下载地址:...

      Maven最新版是一个流行的Java项目构建系统 目前,绝大多数开发人员都把Ant当作Java编程项目的标准构建工具.rar

      Maven是一种Java项目管理工具,可以管理项目构建、依赖关系和文档。Maven使用基于XML的配置文件,称为pom.xml,来定义项目的结构和构建过程。 Maven的优点 易于使用这一特点使得Maven在软件开发中变得更加便捷。...

      apache-ant-1.9.3.rar

      当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发 中每个人使用。Ant构建文件默认名为build.xml,也可以取其他的名字。只不过在运行的时候 把这个命名当作参数传给Ant。构建...

      apache-ant-1.9.6

      Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建...

      Ant权威指南

      本书不但从 Ant 技术上进行了详细、本质的讲解,同时结合作者经历过的各种项目经验,对项目结构控制也进行了总结性、归纳性的描述。对一个程序员从方法编写者升级到整个项目构建者,有非常多的帮助。最后,本书还是...

      wx-react-app:使用Create-React-App 和 Ant Design Pro 框架整合,演示地址:

      重要说明为什么不使用 Ant Design 官方的构建工具进行构建?由于官方构建工具,在 Debug 的时候,无法在源码上进行调试,通过浏览器 Sources 看到的源码是编译后的代码,给调试造成了很大的障碍,所以采用上述方法...

      Vue+Ant Design Vue学习经验分享1.doc

      2.7 使用Vue-cli构建Vue项目 2.8 Vue项目及其目录结构说明 2.9 基于vuedemo项目简单的功能 2.10 Vue以及VueCLi运行机制的分享 3. Ant Design Vue学习分享 3.1 介绍 3.2 环境搭建 3.3 官方文档如何看 3.4 ...

      apache-ant-1.10.8.zip

      nt是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是存Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件...

      ant学习配套电子书教程

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

      apache-ant-1.9.3-src.tar

      Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。 跨平台性。Ant是纯Java语言编写的,所示具有很好的跨平台性。 操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件...

      ant1.8安装文件

      ant1.8 安装文件,Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。跨平台性。Ant是存Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一...

      iuhyiuhkjh908u0980

      [转]使用Ant进行项目构建之二 ... 前面已经把ant的基本运行环境搭建好了,在接下来的工作中,将一步一步的开始构建我们的项目。选择项目目录结构:一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的...

      什么是gradle,及其的作用.md

      2. **多项目构建**:Gradle支持多项目构建,可以在一个构建脚本中管理和构建多个相关的子项目。这使得在大型项目中管理模块化和分层结构变得更加简单。 3. **插件生态系统**:Gradle具有丰富的插件生态系统,提供了...

      maven window下安装包

      第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.1 自定义项目原型结构组成 第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.2 命令行生成项目原型项目 第13章:使用Maven生成项目原型/...

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

      使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven Reference 9. 项目对象模型 9.1. 简介 9.2. POM 9.2.1. 超级POM 9.2.2. 最简单的POM 9.2.3. 有效POM 9.2.4. 真正的POM 9.3. ...

      introduction-to-build-tools:格但斯克理工大学系列讲座的构建工具(Ant、Maven、Gradle)使用示例

      构建工具介绍此工作区包含用于格但斯克理工大学系列讲座的构建工具(Ant 和 Maven)使用示例。 它们被分类在不同的目录中,每个工具使用示例一个。结构每个主题(构建工具)都有自己的目录。 在其中,每个示例都有...

      Vue+Antv X6绘制流程图demo

      在Vue项目中使用AntV X6组件库绘制流程图,需要实现以下需求: 需求1:左侧菜单中的模块可以拖拽进入画布中生成对应的流程图模块 需求2:流程图中的节点之间可以进行连线交互 需求3:点击对应的节点后可以进行操作...

      ant-ivy:Apache Ant Ivy的镜像

      与Apache Ant紧密集成虽然可以作为独立工具使用,但Apache Ivy与Apache Ant的配合特别好,它提供了许多强大的Ant任务,从依赖关系解析到依赖关系报告和发布。最新变化: 在文件查看自上次发行以来的更改列表。支持...

    Global site tag (gtag.js) - Google Analytics