一个基于Maven项目Ant的构建模板

一般的我创建的项目都是基于Maven的,但是很多人也喜欢用Ant打包jar,或者war.我一般都会在项目中既包含Maven的pom.xml,也会有ant的build.xml

只要在控制台执行:


?
1
mvn dependency:copy-dependencies
然后执行:



?
1
ant OR ant javadoc
就会打包程序或者生成项目的Javadoc文档.


打包的程序一般在:${project.path}/target/dist/${version}/

JavaDoc文档一般在${project.path}/target/ant/javadoc/

一般执行mvn dependency:copy-dependencies会把依赖的jarcopy到${project.path}/target/dependency/目录下.可以很容易的利用好Ant.

build.xml


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<? xml version = "1.0" encoding = "UTF-8" ?>
< project name = "dsolrcloud" default = "default" basedir = "." >
     < description >Builds, tests, and runs the project dsolrcloud.</ description >
 
     < property environment = "env" />
 
     < property name = "version" value = "1.0" />
     < property name = "project" value = "dsolrcloud" />
     < property name = "package" value = "dsolrcloud" />
     < property name = "domain" value = "net" />
     < property name = "author" value = "ZhenQin" />
     < property name = "vendor" value = "ZhenQin" />
 
     < property name = "src.dir" location = "src/main/java" />
     < property name = "build.dir" location = "target/ant/classes" />
     < property name = "dist.dir" location = "target/dist" />
 
     < property name = "config.dir" location = "src/main/resources" />
     < property name = "doc.dir" location = "target/ant/javadoc" />
     < property name = "web.root" location = "src/main/webapp" />
 
     < property name = "lib.dir" location = "target/dependency" />
     < property name = "test.dir" location = "src/test/java" />
 
     < path id = "classpath" >
         < fileset dir = "${lib.dir}" includes = "**/*.jar" />
     </ path >
 
     < target name = "makedir" description = "建立文件夹" >
         < mkdir dir = "${dist.dir}" />
         < mkdir dir = "${build.dir}" />
         < mkdir dir = "${lib.dir}" />
         < mkdir dir = "${test.dir}" />
     </ target >
 
     < target name = "compile" depends = "makedir" description = "编译代码" >
         <!-- 编译所有的代码,Server and client -->
         < javac srcdir = "${src.dir}"
                destdir = "${build.dir}"
                encoding = "UTF-8"
                includeantruntime = "no"
                excludes = "**/test/*,**/test/bean/*,**/*.svn,*.svn"
                includes = "**/*.java"
                source = "1.6"
                target = "1.6"
                deprecation = "true"
                failonerror = "true"
                debug = "true" >
             < classpath refid = "classpath" />
         </ javac >
 
         <!-- 把所有文件copy到build目录 -->
         < copy todir = "${build.dir}" >
             < fileset dir = "${config.dir}" includes = "**/*" />
         </ copy >
     </ target >
 
     <!--生成Javadoc 文档 -->
     < target name = "javadoc" description = "生成Javadoc文档." >
         < delete dir = "${doc.dir}" />
         < mkdir dir = "${doc.dir}" />
         < javadoc destdir = "${doc.dir}" windowtitle = "${project} Javadoc" use = "yes"
                  linksource = "no" splitindex = "yes" encoding = "UTF-8"
                  docencoding = "UTF-8" locale = "zh_CN" >
             < classpath refid = "classpath" />
             < packageset dir = "${src.dir}" defaultexcludes = "yes" >
                 < include name = "${domain}/${package}/**" />
             </ packageset >
         </ javadoc >
     </ target >
 
     < target name = "package" depends = "compile" description = "打包成Jar" >
         < mkdir dir = "${dist.dir}/${version}" />
         < tstamp >
             < format property = "TODAY" pattern = "yyyy-MM-dd HH:mm:ss" />
             < format property = "TIME" pattern = "yyMMddHHmm" />
         </ tstamp >
 
         < manifest file = "${web.root}/META-INF/MANIFEST.MF" >
             < attribute name = "Created-By" value = "${author}" />
             < attribute name = "Built-Date" value = "${TODAY}" />
             < attribute name = "Implementation-Title" value = "${project}" />
             < attribute name = "Implementation-Version" value = "${version}" />
             < attribute name = "Implementation-Vendor" value = "${vendor}" />
         </ manifest >
 
         <!-- 打包所有的编译文件 -->
         < jar jarfile = "${dist.dir}/${version}/${domain}.${package}.${project}.bin.${version}.v${TIME}.jar"
              basedir = "${build.dir}" manifest = "${web.root}/META-INF/MANIFEST.MF" >
         </ jar >
 
         <!-- 生成Web配置及部署文件 -->
         < war destfile = "${dist.dir}/${version}/${project}.v${TIME}.war"
              webxml = "${web.root}/WEB-INF/web.xml" manifest = "${web.root}/META-INF/MANIFEST.MF" >
             < fileset dir = "${web.root}" excludes = "${web.root}/WEB-INF/classes/*" ></ fileset >
             < classes dir = "${build.dir}" />
             < lib dir = "${lib.dir}" includes = "**/*.jar" />
         </ war >
 
         <!--
           <jar jarfile="${dist.dir}/${version}/${domain}.${package}.${project}.client.bin.${version}.v${TIME}.jar"
                basedir="${client.build.dir}" manifest="${web.root}/META-INF/MANIFEST.MF">
           </jar>
           <jar jarfile="${dist.dir}/${version}/${domain}.${project}.sources.${version}.jar"
                basedir="${src.dir}" manifest="${web.root}/META-INF/MANIFEST.MF">
           </jar>
           <jar jarfile="${dist.dir}/${version}/${domain}.${project}.testsource.${version}.jar"
               basedir="${test.dir}" manifest="${web.root}/META-INF/MANIFEST.MF">
           </jar>
 
           <jar jarfile="${dist.dir}/${version}/${domain}.${project}.javadoc.${version}.jar"
               basedir="${doc.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"/>
           -->
 
     </ target >
 
     < target name = "destory" description = "最后的清理" >
         < delete  includeemptydirs = "true" >
             < fileset dir = "${build.dir}" includes = "**/*" />
         </ delete >
     </ target >
     < target name = "default" depends = "package, destory" >
 
     </ target >
</ project >
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract Maven权威指南是一本关于Apache Maven的书。 Copyright 1. Creative Commons BY-ND-NC Foreword: Beta 0.16 Preface 1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing Conventions 5. Acknowledgements 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个项目”的概念模型 1.6. MavenAnt的另一种选择么? 1.7. 比较MavenAnt 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上安装Maven 2.4. 验证Maven安装 2.5. Maven安装细节 2.5.1. 用户相关配置和仓库 2.5.2. 升级Maven 2.6. 获得Maven帮助 2.7. 使用Maven Help插件 2.7.1. 描述一个Maven插件 2.8. 关于Apache软件许可证 I. Maven实战 3. 一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. 小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1. Yahoo! Weather RSS 4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. Simple Weather源码 4.7. 添加资源 4.8. 运行Simple Weather项目 4.8.1. Maven Exec 插件 4.8.2. 浏览你的项目依赖 4.9. 编写单元测试 4.10. 添加测试范围依赖 4.11. 添加单元测试资源 4.12. 执行单元测试 4.12.1. 忽略测试失败

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值