使用Maven管理软件项目

什么是Maven

  

  Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

为什么要用Maven

  我最初使用Maven是因为使用jar包的不便,每次在Java项目中要使用相应的jar包都要先上网下载,由于下载途径的多样性,对这些jar包的筛选及其稳定性也成了一个令人头疼的事情,jar包一多,对这些jar包的管理也是很烦的。而使用Maven就可以很好的解决这个问题,在Maven项目中,通过pom.xml添加依赖(jar包),只须在pom.xml文件中配置所需用到jar包的坐标,版本即可,在创建Maven项目时会自动到Maven中央仓库下载jar包到本地,Maven中央仓库有各种各样的jar包以及各种版本,使用起来很方便。

  除此之外,Maven还有以下功能:

  1.编译源代码

   2. 发布项目

   3. 编译测试源代码

   4.运行应用程序中的单元测试

   5.生成项目相关信息的网站

   6.清除项目目录中的生成结果

   7.根据项目生成的jar

   8. 在本地Repository中安装jar

   9.eclipse 生成eclipse项目文件

  10启动jetty服务

  11启动tomcat服务

  12清除以前的包后重新打包,跳过测试类

Maven标准目录结构

     1.标准目录结构:

src

-main
      –bin 脚本库
      –java java源代码文件
      –resources 资源库,会自动复制到classes目录里
      –filters 资源过滤文件
      –assembly 组件的描述配置(如何打包)
      –config 配置文件
      –webapp web应用的目录。WEB-INF、css、js等
  -test
      –java 单元测试java源代码文件
      –resources 测试需要用的资源库
      –filters 测试资源过滤库
  -site Site(一些文档)
target
LICENSE.txt Project’s license
README.txt Project’s readme

工程根目录下就只有src和target两个目录

target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。

target里的所有内容都是maven构建的时候生成的

pom.xml

  下贴SSM框架常用的依赖构成的pom.xml文件:

    

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.zhdm</groupId>
  5. <artifactId>SSMDemo</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>SSMDemo Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <properties>
  11. <!-- spring版本号 -->
  12. <spring.version>4.0.2.RELEASE</spring.version>
  13. <!-- mybatis版本号 -->
  14. <mybatis.version>3.2.6</mybatis.version>
  15. <!-- log4j日志文件管理包版本 -->
  16. <slf4j.version>1.7.7</slf4j.version>
  17. <log4j.version>1.2.17</log4j.version>
  18. </properties>
  19. <dependencies>
  20. <!-- 加密解密需要的jar包 -->
  21. <dependency>
  22. <groupId>org.bouncycastle</groupId>
  23. <artifactId>bcprov-ext-jdk15on</artifactId>
  24. <version>1.50</version>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.apache.directory.studio</groupId>
  28. <artifactId>org.apache.commons.codec</artifactId>
  29. <version>1.8</version>
  30. </dependency>
  31. <!-- 邮件需要的jar包,记不清是否一定需要 -->
  32. <dependency>
  33. <groupId>com.sun.mail</groupId>
  34. <artifactId>javax.mail</artifactId>
  35. <version>1.5.0</version>
  36. </dependency>
  37. <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
  38. <dependency>
  39. <groupId>commons-dbcp</groupId>
  40. <artifactId>commons-dbcp</artifactId>
  41. <version>1.2.2</version>
  42. </dependency>
  43. <!-- 导入java ee jar 包 -->
  44. <dependency>
  45. <groupId>javax</groupId>
  46. <artifactId>javaee-api</artifactId>
  47. <version>7.0</version>
  48. </dependency>
  49. <!-- spring核心包 -->
  50. <dependency>
  51. <groupId>org.springframework</groupId>
  52. <artifactId>spring-core</artifactId>
  53. <version>${spring.version}</version>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.springframework</groupId>
  57. <artifactId>spring-web</artifactId>
  58. <version>${spring.version}</version>
  59. </dependency>
  60. <dependency>
  61. <groupId>org.springframework</groupId>
  62. <artifactId>spring-oxm</artifactId>
  63. <version>${spring.version}</version>
  64. </dependency>
  65. <dependency>
  66. <groupId>org.springframework</groupId>
  67. <artifactId>spring-tx</artifactId>
  68. <version>${spring.version}</version>
  69. </dependency>
  70. <dependency>
  71. <groupId>org.springframework</groupId>
  72. <artifactId>spring-jdbc</artifactId>
  73. <version>${spring.version}</version>
  74. </dependency>
  75. <dependency>
  76. <groupId>org.springframework</groupId>
  77. <artifactId>spring-webmvc</artifactId>
  78. <version>${spring.version}</version>
  79. </dependency>
  80. <dependency>
  81. <groupId>org.springframework</groupId>
  82. <artifactId>spring-aop</artifactId>
  83. <version>${spring.version}</version>
  84. </dependency>
  85. <dependency>
  86. <groupId>org.springframework</groupId>
  87. <artifactId>spring-context-support</artifactId>
  88. <version>${spring.version}</version>
  89. </dependency>
  90. <dependency>
  91. <groupId>org.springframework</groupId>
  92. <artifactId>spring-test</artifactId>
  93. <version>${spring.version}</version>
  94. </dependency>
  95. <!-- mybatis核心包 -->
  96. <dependency>
  97. <groupId>org.mybatis</groupId>
  98. <artifactId>mybatis</artifactId>
  99. <version>${mybatis.version}</version>
  100. </dependency>
  101. <!-- mybatis/spring包 -->
  102. <dependency>
  103. <groupId>org.mybatis</groupId>
  104. <artifactId>mybatis-spring</artifactId>
  105. <version>1.2.2</version>
  106. </dependency>
  107. <dependency>
  108. <groupId>junit</groupId>
  109. <artifactId>junit</artifactId>
  110. <version>4.11</version>
  111. <scope>test</scope>
  112. </dependency>
  113. <!-- 导入mybatis包 -->
  114. <dependency>
  115. <groupId>org.mybatis</groupId>
  116. <artifactId>mybatis</artifactId>
  117. <version>3.2.6</version>
  118. </dependency>
  119. <!-- 导入Mysql数据库链接jar包 -->
  120. <dependency>
  121. <groupId>mysql</groupId>
  122. <artifactId>mysql-connector-java</artifactId>
  123. <version>5.1.30</version>
  124. </dependency>
  125. <!-- json数据 -->
  126. <dependency>
  127. <groupId>org.codehaus.jackson</groupId>
  128. <artifactId>jackson-core-asl</artifactId>
  129. <version>1.9.13</version>
  130. </dependency>
  131. <dependency>
  132. <groupId>org.codehaus.jackson</groupId>
  133. <artifactId>jackson-mapper-asl</artifactId>
  134. <version>1.9.13</version>
  135. </dependency>
  136. <!-- JSTL标签类 -->
  137. <dependency>
  138. <groupId>jstl</groupId>
  139. <artifactId>jstl</artifactId>
  140. <version>1.2</version>
  141. </dependency>
  142. <!-- 日志文件管理包 -->
  143. <!-- log start -->
  144. <dependency>
  145. <groupId>log4j</groupId>
  146. <artifactId>log4j</artifactId>
  147. <version>${log4j.version}</version>
  148. </dependency>
  149. <dependency>
  150. <groupId>org.slf4j</groupId>
  151. <artifactId>slf4j-api</artifactId>
  152. <version>${slf4j.version}</version>
  153. </dependency>
  154. <dependency>
  155. <groupId>org.slf4j</groupId>
  156. <artifactId>slf4j-log4j12</artifactId>
  157. <version>${slf4j.version}</version>
  158. </dependency>
  159. <!-- log end -->
  160. </dependencies>
  161. <build>
  162. <finalName>SSMDemo</finalName>
  163. </build>
  164. </project>
时间: 2025-02-01 08:04:14

使用Maven管理软件项目的相关文章

Spring入门(四):使用Maven管理Spring项目

让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要使用Maven? 之前我们新建的项目,项目所要依赖的第三方jar包都在项目的类路径下(通常为lib目录),如下所示: 使用这种方式,我们无法知道第三方类库的依赖关系,比如导入一个特定的jar包时,可能此jar包还依赖于其他的jar包,其他的jar包又依赖于更多的jar包,这也是我们平常遇到的Clas

C#:办公用品管理软件项目总结

本学期.net课的课程设计是做一个办公用品管理的软件,课堂上只给了五次课十个小时,由于老师给的需求文档也不是太全面,基本上是课下写,遇到问题上课再问老师,功能不对的地方再改.这个软件本身功能不复杂,毕竟是学校的作业而不是公司的产品,除去界面部分剩下的就是对数据库的操作.database里的表是老师建好的,总共也才四个表,不过老师建表时相关联的表并没有设置外键,主键也没有设成自增的,所以在增加和删除操作时,总是感觉很别扭,删除的时候不能级联删除,要一个一个表依次删除,费时费力,还好只有四个表.这种

用ideal创建java项目,并添加maven管理

第一步 创建项目 File->New->Project 第二步 修改项目结构 在项目的src下面创建main/java和main/resources目录. File->Project Structure 或者快捷键Ctrl+Shift+Alt+s.将Sources定位到java目录下,将Resources定位到resources下面. 此处补充idea下的java项目关于不同资源的标识符. Sources 一般用于标注类似 src 这种可编译目录.有时候我们不单单项目的 src 目录要可

项目整体管理、项目范围管理总结

项目整体管理  1.项目整体管理的含义.主要活动和流程  1.1.项目整体管理的含义 负责项目的全生命周期管理.全局性管理和综合性管理. 主要是资源的整合,干系人的整合,  对其他项目过程组的整合,项目四要素的整合. 1.2.项目整体管理的过程  项目启动 输入:合同.项目工作说明书.环境因素和组织因素.组织过程资产 输出:项目章程 工具和技术:项目管理方法.项目管理信息系统.专家判断.项目选择方法 制定初步项目范围说明书 输入:项目章程.工作说明书.环境因素和组织因素.组织过程资产 输出:初步

使用Maven构建Android项目

http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着run起来再说,导入eclipse,一堆错误,设置classpath依赖,折腾半天,还是编译错误,于是联系项目接口人,得知他有一个Android库项目没有提交到SVN,晕... 对于习惯使用Maven管理Java项目的我来说,自然想到能否用Maven构建Android项目呢?于是开始Google.百

EAM管理软件

当企业正在对ERP.CRM等管理软件踌躇的时候,门户网站中关于EAM管理软件实施成功的报道,却在一时间成为业界关注的亮点.什么是EAM管理软件? EAM是英文Enterprise Asset Management的缩写,直译为企业设备资产管理. EAM企业资产管理系统是设备管理理念.实践与IT技术的有机结合,帮助企业掌握资产状况,让有形资产物尽其用,安全运行并保证生态环境不受侵害,同时最大限度地降低成本,提高投资回报率.EAM管理软件这样的效益对于设备资产密集型企业尤为重要. 信息化带动工业化,

生产企业如何挑选合适的ERP管理软件?

最近上网登录知乎账号发现很多网友邀请我回答ERP相关问题,我选了一类提问比较频繁的问题,结合我们公司之前选软件的经历给大家分享一下经验,下面列出的三条提问是网友邀请比较频繁的一类问题: 网友A问:公司最近想上线一套ERP管理软件,谁知道哪家比较好? 网友B问:我公司是生产加工型公司,现在准备选一个ERP管理软件,谁有好的可以推荐下? 网友C问:请问国内有哪些公司的ERP管理软件比较好?尤其是在生产计划调度,物料齐套管理,执行控制等方面做的比较好的,能不能找到软件的演示或者试用版? 在我们公司没上

企业如何进行oa管理软件开发?

随着我国信息化科技的快速发展,越来越多的企业为了更多的进行办公管理对oa管理软件进行了开发部署.那企业如何进行oa管理软件开发? 1.确立业务计划 实施企业要清楚地认识到企业自身对于oa管理软件的需求,以及oa管理软件将如何影响自己的办公流程.在准确把握和描述企业应用需求的基础上,企业应制定一份最高级别的业务计划,力争实现合理的技术解决方案与企业资源的有机结合. 2.建立oa管理软件开发团队 企业在oa管理软件项目成立之后,应当及时组建一支团队.团队可以从每个拟使用oa管理软件的部门中抽选出得力

idea 创建一个 maven 管理的 springMvc 动态web 工程

1.file -> new -> project 2. 3. ok,以上,maven管理的项目就创建好了,目录如下 pom.xml文件的内容 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-