说说Maven项目搭建及常用包添加

开发 后端
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.

什么是Maven?

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.

如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方法。Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.

项目的主页地址为:http://maven.apache.org/

我不习惯使用命令式的,所以我的Maven用的是Eclipse插件,插件地址:http://m2eclipse.sonatype.org/sites/m2e

安装以后,就可以用它来建立项目了。

一、首先新建一个 Maven project,在Next中选择Create a simple project 这样就新建一个Maven项了。

二、修改.project文件(可以在Navigator视图中看到)

  1. <buildSpec> 
  2.         <buildCommand> 
  3.             <name>org.eclipse.wst.jsdt.core.javascriptValidator</name> 
  4.             <arguments> 
  5.             </arguments> 
  6.         </buildCommand> 
  7.         <buildCommand> 
  8.             <name>org.eclipse.wst.common.project.facet.core.builder</name> 
  9.             <arguments> 
  10.             </arguments> 
  11.         </buildCommand> 
  12.         <buildCommand> 
  13.             <name>org.eclipse.jdt.core.javabuilder</name> 
  14.             <arguments> 
  15.             </arguments> 
  16.         </buildCommand> 
  17.         <buildCommand> 
  18.             <name>org.eclipse.wst.validation.validationbuilder</name> 
  19.             <arguments> 
  20.             </arguments> 
  21.         </buildCommand> 
  22.         <buildCommand> 
  23.             <name>org.maven.ide.eclipse.maven2Builder</name> 
  24.             <arguments> 
  25.             </arguments> 
  26.         </buildCommand> 
  27.     </buildSpec> 
  28.     <natures> 
  29.         <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 
  30.         <nature>org.maven.ide.eclipse.maven2Nature</nature> 
  31.         <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> 
  32.         <nature>org.eclipse.jdt.core.javanature</nature> 
  33.         <nature>org.eclipse.wst.common.project.facet.core.nature</nature> 
  34.         <nature>org.eclipse.wst.jsdt.core.jsNature</nature> 
  35.     </natures> 

三、修改工程的Project Facets,选中项目右键点击Properties,在Project Facets中选择Dynamic Web Module 和 Jave(只有经过上述两步操作才能在Tomcat中发布),如果修改此处后还是无法在Apace的tomcat service中Add此项目,就可以查看org.eclipse.wst.common.project.facet.core.xml的文件,里面配置有各种版本信息。

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <faceted-project> 
  3.   <fixed facet="wst.jsdt.web"/> 
  4.   <installed facet="java" version="1.6"/> 
  5.   <installed facet="jst.web" version="2.5"/> 
  6.   <installed facet="wst.jsdt.web" version="1.0"/> 
  7. </faceted-project> 

我在搭建的时候<installed facet="jst.web" version="3.0"/>太高,修改后才能Add。

四、配置输出,在 Properties 中的Deployent Assembly 中配置项目Publish时,项目中的文件对应Publish后路径。记得加上Maven包,只有这样Maven管理的包才能发布过去。或者可以直接修改 修改.settings文件夹下的org.eclipse.wst.common.component文件中的配置,此配置是配置发布后对应的路径。如:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <project-modules id="moduleCoreId" project-version="1.5.0"> 
  3.     <wb-module deploy-name="xiao"> 
  4.        <wb-resource deploy-path="/" source-path="/src/main/webapp"/> 
  5.         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> 
  6.         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> 
  7.         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/> 
  8.         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/> 
  9.         <wb-resource deploy-path="/WEB-INF/lib" source-path="/src/main/webapp/WEB-INF/lib"/> 
  10.         <property name="context-root" value="xiao"/> 
  11.         <property name="java-output-path" value="/xiao/target/classes"/> 
  12.     </wb-module> 
  13. </project-modules> 

五、在Properties for Maven 下的Java Build Path 的Order and Export中配置 Build Path,勾上Maven的管理包。或者修改.classpath文件,在其中加入包的依赖,这样在发布时可以将由Maven管理的包直接发布过去。如:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <classpath> 
  3.  <classpathentry kind="src" output="target/classes" path="src/main/java"/> 
  4.  <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> 
  5.  <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> 
  6.  <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/> 
  7.  <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
  8.   <attributes> 
  9.    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
  10.   </attributes> 
  11.  </classpathentry> 
  12.  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> 
  13.  <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> 
  14.  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
  15.  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
  16.  <classpathentry kind="output" path="target/classes"/> 
  17. </classpath> 

(此文件也在直接在工程目标下直接找到)

六、经过上面几步,基本的Maven管理包环境已经搭建好了,可以打开Pom.xml文件添加需要的包了,它的几个视图作用分别是:

  • Overview:显示maven项目的一些基本信息.
  • Dependencies:添加jar包的页面,很重要!
  • Plugins:添加maven插件的页面.比如tomcat-maven-plugin等.
  • Reporting:从没用过,无视~
  • Dependency Hierarchy:用于显示jar包的依赖关系.没事的时候可以看看jar包的依赖关系.
  • Effective POM:显示maven的编译路径,plugin之类的.也可以无视.
  • pom.xml:导入jar包的信息,可以在其中进行修改.重要

七、构建项目后最好将工程关闭再重新打开,有时候如果不重新打开配置就无法加载进入发布路径去。经过上述几步就可以搭建Maven项目了,直接在工程文件夹下打开.metadata\.plugins\org.eclipse.wst.server.core 路径,就可以看到发布后的工程。其主要内容均在wtpwebapps文件夹下。

八、加包。在pom.xml文件的Dependencies下,Dependencies中Add包。

  •  struts2:struts2-core
  •  spring:spring-orm,spring-struts,struts2-spring-plugin
  •  acegi:acegi-security-cas

对于上述几个,只要加入这几个包就可以了,其它的依赖全会自动加入。保存时自动下载所需要的包至本地仓库。在对tomcat clean后就可以在发布路径下看到包了。

九、注意,有时间包下载可能不成功,就时候就得重新下载了,重新下载前先到本地仓库中删除此包文件夹,方可重新下载。到local repository中找到对应的文件夹,会发现里面有一个XXXX.jar.lastupdated的文件,这个是之前没有下载完成的jar,由于它的存在,影响了maven的更新,删之,再次update dependencies,搞定。 (到c盘中对应的系统帐号文件夹下找.m2)。

至此,基本可以发布Maven项目了。

简单的struts+spring用Maven搭建Demo:http://download.csdn.net/source/3533859

原文链接:http://www.cnblogs.com/kuyijie/archive/2011/08/20/2146463.html

【编辑推荐】

  1. 电影《Java风云》预告片
  2. 基于Java的HBase客户端编程
  3. 关于Eclipse使用64位Java 7崩溃的问题
  4. Java 7是蜜糖还是毒药?
  5. 红帽的PaaS平台OpenShift支持Java EE 6

 

 

 

 

 

 

 

 

责任编辑:艾婧 来源: 叩亦杰的博客
相关推荐

2009-07-07 10:54:01

JDK

2019-12-01 22:08:04

Mavenjar包开发

2010-03-03 09:30:16

Fedora yum

2016-11-01 09:18:33

Python闭包

2017-03-29 11:20:45

maven插件总结

2013-03-19 09:33:46

项目

2021-08-11 08:53:23

Git命令面试

2020-08-20 14:29:29

复原技术机密

2021-01-14 11:05:41

项目配置属性

2020-07-07 16:55:19

机器学习人工智能计算机

2009-06-26 16:12:59

2020-04-28 14:50:44

IO原理模型

2020-11-30 11:01:34

反射用途实现

2014-05-20 10:09:54

Intellij IDMaven Web

2023-04-04 08:01:47

2021-07-19 07:55:24

Redux中间件原理

2023-01-05 08:31:38

Maven库Gitlab

2020-03-31 14:00:29

Python 开发工具

2014-05-30 14:06:46

2021-10-11 08:59:35

项目代码组织
点赞
收藏

51CTO技术栈公众号