一个基于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>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 20:30:05

一个基于Maven项目Ant的构建模板的相关文章

如何创建一个基于Maven的SmartGWT项目

如何创建一个基于Maven的SmartGWT项目 使用环境 Eclipse的版本为:Luna Service Release 2 (4.4.2)(这个其实不是很重要,你完全可以使用最新版本的Eclipse或者MyEclipse) Maven的版本为:3.1.0 SmartGWT的版本为:6.0p GWT的SDK版本为:2.7 前提准备 你需要安装Maven.如何安装Maven不是文本的内容,你可以参考我的关于Maven的博客. 把SmartGWT的jar包上传到私服服务器. 操作过程 创建GWT

一个多maven项目聚合的实例

原文: http://my.oschina.net/xuqiang/blog/99854 本文介绍一个多maven项目的实例demo,展示了聚合.继承.工程依赖.单元测试.多war聚合.cargo发布等场景  一.工程介绍  该项目由5个maven项目组成    task-aggregator是父工程,同时承担聚合模块和父模块的作用,没有实际代码和资源文件  task-common是基础工程,里面是公共的代码  task-sla是某一个业务子模块,不包含web内容  task-sla-web是某

使用maven构建一个helloworld maven项目

1.下载maven http://maven.apache.org/ 选择一个较新版本下下来 2.配置m2_home环境变量 先解压,新建用户变量m2_home,将bin目录添加到path变量中 3.测试是否安装成功:mvn -version 4.在某个目录下输入mvn archetype:generate,要等一会儿 第一次要下载不少jar包,到 Generating project in Interactive mode 时要等很久不要关,继续等 5.让你输入groupid:com.hy 输

基于天气预报项目谈springcloud构建的微服务(一)

单体架构 简单介绍一下四个模块分别的作用: 城市信息模块: 主要是调用第三方服务获取所有的城市信息,用于数据采集的时候调用 数据采集模块: 由于是基于调用第三方 api 的服务,所以我们要考虑到服务的可用性:比如网络的原因,网络因素的不可控的,每次调用都都可能出现各种网络的问题:网络连接超时.甚至连接不上,延迟太大等.所以我们应该避免多次的远程网络的服务调用.同时是基于第三方服务,可能有服务调用次数限制等原因,结合我们项目的需求,可以将数据定时采集缓存起来.因为天气信息在一段时间内是变化不大.所

Eclipse创建一个普通maven项目详细步骤

首先找到Eclipse最顶部左边的File,new一个 Maven Project项目 下一步,勾选第二个即可 下一步,选择  maven-archetype-webapp Group Id 写域名倒置+公司名,如com.ali,  Artifact Id写项目名,然后点击finish 刚创建完的项目会报错 打开jsp页面,提示是这个错误The superclass "javax.servlet.http.HttpServlet" was not found on the Java B

Maven 项目依赖 pom 文件模板

下面是网上down的 pom 文件模板: <!-- 属性 --> <properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <struts.version>2.3.24</struts.version> </properties> <

一个基于C++11的单例模板类

1 #ifndef _SINGLETON_H_ 2 #define _SINGLETON_H_ 3 4 #include <mutex> 5 #include <memory> 6 7 template<typename T> 8 class Singleton { 9 public: 10 template <typename... ArgTypes> 11 static T* getInstance(ArgTypes... args) { 12 stat

Maven 学习(二)使用eclipse构建Maven项目及发布一个Maven项目

开发环境: Eclipse Jee Mars(截止2015年12月1日目前的最新版eclipse4.5),下载地址:http://www.eclipse.org/downloads/ 因为此版本已经集成了M2E的插件,再者Mars版本的eclipse也比较稳定,可以省一些不必要的麻烦. 一.构建Maven项目 用eclipse构建maven项目之前我们需要为eclipse做一些必要的配置 一些必要的配置 1.点击eclipse菜单栏的Window下的preferences,选择Maven菜单 2

使用maven在netbeans下构建wicket项目

在netbeans下构建wicket项目,网上流传较多的方法是直接使用netbeans的wicket插件,这种方法虽然简单,但是依赖的wicket版本较老,更新较慢,并且很容易与其他第三方库不兼容.使用maven构建wicket项目,可以很好的整合第三方依赖库,并且也能使用最新的wicket版本,减少一定的安全风险.下面介绍方法. 首先选择新建项目->Maven->Web应用程序->下一步 接下来输入项目名称和项目位置,选择下一步,选择你使用的服务器和Java EE版本,点击完成,创建了