MAVEN 项目管理

公司用maven进行项目依赖管理,就学了来。。以下是学习过程写下的文档.

1Maven是什么

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

 

2Maven怎样实现依赖管理

         每个Maven项目都有一个pom.xml文件,pom(Project Object Model)为项目命名,提供了项目的一组唯一标识符(坐标),并且通过依赖,父和先决条件来定义它和其它项目的关系。

         项目的唯一标识符(坐标)由组标识符(groupId)、构件标识符(artifactId)和版本(version)来定义的, 项目间可以通过使用这些坐标来声明依赖

 

3、怎样构建Maven项目

         公司使用的是m2eclipse插件,构建maven项目方式如下:

       Fileànewàotheràmaven project弹出如下的对话框中可以先选择“create a simple project”然后”next”或者直接点击“next (前者只能构建简单的maven项目,后者可以构建基于hibernate , spring . struts2webapp等项目,在此只介绍直接”next”)

                                                             

直接点击“next,catalog中选择”Internal”,就会出现如下对话框,其中”Artifact Id”一项

 

 

用以提供Maven项目类型选择,其对照的类型如文档附录所示。在此选择”quickstart”(就是上一步中的”create  a  simple project ”) 

 

 

点出”next”后出现 如下对话框,其中的”group id” ”artifact id” “version”三项唯一定位一个项目,在整个workspace里不能重复。在”Advanced”下面的”Name template”选项中你可以定义自己项目的命名规则.选择“[artifactId]”,则项目的名称与你在填写的”Artifact Id”一致,其它类推.

 

4、最佳构建Maven项目方式

   所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。所以我们应该构建多模块的Maven项目。这里实际上遵守一个设计模式原则:高内聚,低耦合

 

5、如何构建包含模块的项目

   多模块的项目就类似于接口与实现类,包含模块的项目本身也是一个maven项目,但它不应该有任何实现,所以它是一个”simple project”,直接在” Maven项目构建图1”中选择“create a simple project”在弹出的对话框的“Packing“下拉框中选择”pom“即可(即打包方式为”pom”,通常我们会把项目打包为“jar”或者”war”).

 

 

         那怎样为这个项目添加具体模块呢?在workspace里面打到你刚建的那个可以包含模块的项目,进行如下图所示操作,然后就可以构建你想要的类型的项目(当然可以嵌套模块)

 

 

 

6、怎样使用mavenhome

   Mavenhome就像是一个仓库,可以向里面添加项目依赖的jar包,添加jar包的命令(只有在本机上安装了maven才能使用)

mvn install:install-file -Dfile= -DgroupId=

-DartifactId= -Dversion= -Dpackaging= -DgeneratePom=true 

7、eclipse里面要配置maven的用户设置和本地仓库路径

window-->preferences-->maven-->installations中user settings:*/settings.xml ; local repository: 本地仓库路径 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 maven项目类型:

 

 

1.   internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)   

2.   internal -> appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)   

3.   internal -> appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)   

4.   internal -> appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)   

5.   internal -> appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)   

6.   internal -> appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)   

7.   internal -> appfuse-modular-spring (AppFuse archetype for creating a modular application with Hibernate, Spring and Spring MVC)   

8.   internal -> appfuse-modular-struts (AppFuse archetype for creating a modular application with Hibernate, Spring and Struts 2)   

9.   internal -> appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)   

10. internal -> maven-archetype-j2ee-simple (A simple J2EE Java application)   

11. internal -> maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)   

12. internal -> maven-archetype-mojo (A Maven Java plugin development project)   

13. internal -> maven-archetype-portlet (A simple portlet application)   

14. internal -> maven-archetype-profiles ()   

15. internal -> maven-archetype-quickstart ()   

16. internal -> maven-archetype-site-simple (A simple site generation project)   

17. internal -> maven-archetype-site (A more complex site project)   

18. internal -> maven-archetype-webapp (A simple Java web application)   

19. internal -> jini-service-archetype (Archetype for Jini service project creation)   

20. internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)   

21. internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)   

22. internal -> softeu-archetype-jsf (JSF+Facelets Archetype)   

23. internal -> jpa-maven-archetype (JPA application)   

24. internal -> spring-osgi-bundle-archetype (Spring-OSGi archetype)   

25. internal -> confluence-plugin-archetype (Atlassian Confluence plugin archetype)   

26. internal -> jira-plugin-archetype (Atlassian JIRA plugin archetype)   

27. internal -> maven-archetype-har (Hibernate Archive)   

28. internal -> maven-archetype-sar (JBoss Service Archive)   

29. internal -> wicket-archetype-quickstart (A simple Apache Wicket project)   

30. internal -> scala-archetype-simple (A simple scala project)   

31. internal -> lift-archetype-blank (A blank/empty liftweb project)   

32. internal -> lift-archetype-basic (The basic (liftweb) project)   

33. internal -> cocoon-22-archetype-block-plain ([http://cocoon.apache.org/2.2/maven-plugins/])   

34. internal -> cocoon-22-archetype-block ([http://cocoon.apache.org/2.2/maven-plugins/])   

35. internal -> cocoon-22-archetype-webapp ([http://cocoon.apache.org/2.2/maven-plugins/])   

36. internal -> myfaces-archetype-helloworld (A simple archetype using MyFaces)   

37. internal -> myfaces-archetype-helloworld-facelets (A simple archetype using MyFaces and facelets)   

38. internal -> myfaces-archetype-trinidad (A simple archetype using Myfaces and Trinidad)   

39. internal -> myfaces-archetype-jsfcomponents (A simple archetype for create custom JSF components using MyFaces)   

40. internal -> gmaven-archetype-basic (Groovy basic archetype) 

41. internal -> gmaven-archetype-mojo (Groovy mojo archetype)

 

你可能感兴趣的:(菜鸟程序员,maven,项目管理,eclipse插件,项目构建,jsf,hibernate)