在最前面声明,本文不涉及任何原理,只是对使用方法和期间遇到的问题如何解决。主要是随着年纪原来越大,越觉得好记星不如烂笔头的深意,同时如果能够帮助谁,那就最好不过了。

  前两天自己做一个项目,然后好心朋友要帮忙,但我把项目放到Git上以后出现了点问题,工程文件.project没有上传,依赖的jar文件没有上传,当他从Git上Down下来以后就不太好处理,然后果断将项目改为Maven项目。这就是本文的起源。

  首先要在Eclipse中安装插件:在Help-->install new software,输入下面地址http://download.eclipse.org/technology/m2e/releases,出现如下页面:

  

  然后就像安装其他插件那样一路下一步就OK了。安装完成之后,我们来看一下是否成功,在Eclipse中,Windows->Preferences,如果出现下面的画面,那么恭喜你完成了第一步:

  

  值得注意的是Embedded内置的默认maven版本是我们即将要修改的,应为这个版本有点老了,这直接导致的后果就是在添加dependences的时候,maven的库不是最新的。

  其次去maven的官网下载最新版的maven,此时的最新版本为3.2.1,下载地址如下:http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.zip。解压到本地目录,比如我的环境中,在本地目录F:\apache-maven-3.2.1中,在下面配置一下F:\apache-maven-3.2.1\conf目录中的settings.xml文件,更改一下如下配置:  

  <!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository -->
<localRepository>F:/m2/repository</localRepository>

  当然在本地磁盘F:下创建文件夹m2,然后将刚才配置好的settings.xml文件拷贝到F:/m2目录下。OK,此处有个问题,可能有人说需不需要设置maven的环境变量,可以设置,但是如果只是使用Eclipse的maven的插件而不需要使用命令行,就不用了。反正我没有设置。下面我们在Eclipse中设置maven到我们刚下载的版本。

  

  然后设置用户settings,如下图:

  

  然后保存。OK。这样我设置完了。我们创建一个Maven项目试试手吧。

  在创建向导中多了maven的相关选项:

  

  选择一个web程序:

  

  然后给取名字就好了:

  

  小手轻轻点一下Finish,OK,一个maven程序就算创建完成了。下面观察一下这个项目,在项目上右击->properties->Project Facets看下面的内容:

  

  默认的jre是1.5版本,Dynamic Web Module版本为2.3,当然我这种好大喜功的人当然要改成最新版本,好吧看我的操作:

  

  我修改了jre的版本和web module的版本,但是web module的版本提示出错了,怎么办,在所创建项目的根目录有个文件夹.settings,下面有个org.eclipse.wst.common.project.facet.core.xml,文件,打开以后发现内容如下:  

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.5"/>
</faceted-project>

  对jst.web的值做一下修改:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.5"/>
</faceted-project>

  保存以后,打开项目,右键项目名称,然后在弹出的菜单中选择Maven->Update Project,

    

  然后在弹出的窗口中选择本项目:

  

  然后点击OK,你会发现程序出错了:

  

  然后右键项目,在项目上右击->properties->Project Facets做出如下修改:

  

  特么的我那会设置的jre的版本已经变为1.5了,好吧,再次设置为1.7,保存。此时出现一个新的问题:  

Description    Resource    Path    Location    Type
Java compiler level does not match the version of the installed Java project facet. test-001 Unknown Faceted Project Problem (Java Version Mismatch)

  解决办法,邮件项目,选择属性,设置java Compiler的jdk版本,

  

  原来是1.5版本,点击OK之后,错误消失。这里面要注意的是,每次你Upload Project的时候,这个设置都会恢复成最开始的默认值,是很烦人,这个问题有两个解决办法,一个是这样在pom.xml文件中添加如下内容:  

<build>
<finalName>test-001</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

  但是这样的话只能对这个项目起作用,最根本上还是要从maven本身的配置入手,如何在创建项目的时候就指定默认的jdk呢?

  这样,在maven的安装目录下面的conf/settings.xml文件夹中添加下面一段内容:  

  <profiles>
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile> </profiles>

  如果此时Eclipse正在运行,那么重启一下Eclipse,以后再创建的项目默认的jdk选项均为1.7。就不用每次都配置了。

  最后一个很奇怪的问题,也是困扰我很长时间的问题,就是org.eclipse.wst.common.project.facet.core.xml文件中的内容为:  

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.7"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

  而程序一直报这个异常:

  

  但是项目的属性中看,程序没有问题:

  

  我尝试了很多方法,在网上也搜了很多,但是都不能解决我的问题,仔细看了一下工程,在web.xml中的标记使这样:  

http://java.sun.com/dtd/web-app_2_3.dtd

  果断改成  

http://java.sun.com/dtd/web-app_3_0.dtd

  OK,问题解决。

  文章中我处理问题的方式,符合我的环境和情景,如果谁和我一样,给你一点帮助我感觉很欣慰。

  

Maven项目管理工具初体验的更多相关文章

  1. Eclipse下安装及配置maven项目管理工具

    ①eclipse下maven插件安装. 本地maven安装.环境变量配置完成后,打开eclipse,点击eclipse菜单栏Help->Eclipse Marketplace搜索关键字maven ...

  2. maven(项目管理工具系列 maven 总结二)

    ♣maven是什么? ♣maven下载.安装 ♣了解maven仓库 ♣eclipse配置maven ♣创建maven项目 ♣把maven项目转化为web项目 1.maven是什么? Maven是一个项 ...

  3. Maven 项目管理工具基础入门系列(二)

    一.前言 在 Maven 项目管理工具基础知识系列(一) 这篇文章中,我们已经初步了解了 Maven,也知道了使用 Maven 作为项目管理工具的好处,特别是已经知道如何快速通过 Maven 构建 W ...

  4. Maven项目管理工具

    Maven项目管理工具 白面郎君 Svn eclipse maven量级 1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目 ...

  5. Maven 项目管理工具基础知识系列(一)

    一.Maven 简介 Maven 中文意为 " 内行.专家 ",是 Apache 下的一个开源项目,属于纯 Java 开发,并且只是用来管理 Java项目的,它是一款项目管理工具, ...

  6. Windows Phone开发工具初体验【转载】

    Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...

  7. Maven项目管理工具--简单实用与入门

    Maven管理的方式就是"自动下载项目所需要的jar包,统一管理jar包之间的依赖关系" Maven下载与安装 1.首先确保JDK已安装,且JDK为1.6+(尽量新,新肯定支持,旧 ...

  8. grunt 构建工具(build tool)初体验

    操作环境:win8 系统,建议使用 git bash (window下的命令行工具) 1,安装node.js 官网下载:https://nodejs.org/  直接点击install ,会根据你的操 ...

  9. Maven java项目管理工具

    Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...

随机推荐

  1. Selenium中自动输入10位随机数字的方法

    有时候项目中需要输入快递号,对于已输入过的快递单号则不能再次输入,这种问题怎么解决呢,可以看下这个方法 public static final String ALLCHAR = "01234 ...

  2. 区分 Cookie, LocalStorage 与 SessionStorage

    基本概念 Cookie Cookie 的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码 ...

  3. 直接插入排序(java实现)

    这几天看排序算法,网上大多数排序算法的解释都是“过于专业”,导致一时半会看不明白到底在说什么玩意.现在总结下几大排序算法(java实现) 1.直接插入排序 说的简单点,就是一组无序序列{A1,A2,. ...

  4. Summary—【base】(JavaScript)

    1.认识Js     1.1 Js就是一门运行在客户端浏览器的脚本编程语言     1.2 组成            ECMAScript:Js的语法标准            DOM:JS操作网页 ...

  5. POJ 3249:Test for Job(拓扑排序+DP)

    题意就是给一个有向无环图,每个点都有一个权值,求从入度为0的点到出度为0点路径上经过点(包括起点终点)的权值和的最大值. 分析: 注意3点 1.本题有多组数据 2.可能有点的权值是负数,也就是结果可能 ...

  6. windows系统——U 盘损坏修复

    u盘损坏怎么修复 1.打开控制面板——管理工具——计算机管理——存储——磁盘管理——右击“磁盘1”——点击“初始化磁盘”——“确定”——初始化完毕后,U盘为“联机”状态. 2.在右边空白处“新建磁盘分 ...

  7. [USACO Section 5.3]量取牛奶 Milk Measuring (动态规划,背包$dp$)

    题目链接 Solution 完全背包 \(dp\) , 同时再加一个数组 \(v[i][j]\) 记录当总和为\(j\) 时第 \(i\) 种物品是否被选. 为保证从小到大和字典序,先将瓶子按大小排序 ...

  8. [暑假集训--数论]poj2034 Anti-prime Sequences

    Given a sequence of consecutive integers n,n+1,n+2,...,m, an anti-prime sequence is a rearrangement ...

  9. 使用state改变的jsx监听不到数据变化的问题

    当使用state来改变一个组件内部的虚拟dom的时候,该虚拟dom是无法监听到state数据的变化的,他只会绑定state改变dom当时的数据.

  10. hdu 1158 dp

    /* 题目大意:给n个月工作需要的人数,雇佣一个需要花hire 每个月的薪水是salary,解雇一个需要fire 求完成所有工作的最小费用 dp(i,j)表示第i个月雇佣j员工的最小费用 */ #in ...