首先maven插件是eclipse自带,在eclipse首页,在主菜单点window -->preferences可以看到下图
如果没有只可能是eclipse版本过低,在这里需要修改两个地方,并且这种修改的作用范围是工作区,也就是eclipse-workspace,但更换工作区后就需要重新设置。第一处需要修改的地方是Maven下的Installations,可以看到介绍,即选择一个Maven使用,第一个EMBEDDED就是eclipse内置的Maven,最后一个是我自己添加的,原先没有。
然后就是自己添加
进入添加
然后Finish,选择apply应用就行了,还有一个修改的地方如下
选择自己安装Maven时配置的设置文件,下面的仓库目录会自动调整为,settings文件中设置的目录。原本的目录目的是让我们覆盖.m2下的settings.xml,即拷贝过去,没必要维护两个settings文件,所以直接用maven下的就行。
然后就是创建Maven项目了,自己找到创建就行了,在创建时会看到maven project和maven module,其中项目即可以独立存在的程序,但是module必须依赖于项目存在,是一个项目的组成部分。类似于idea的project和module,所以直接创建项目project即可。
然后就是项目信息填写
在这里可能还需要做一步修改,是情况而定,如下
这里的修改是修改maven的settings.xml文件,用于指定maven使用的jdk版本。当然也可以直接修改eclipse里的设置,但是每一个maven项目都需要修改一次,所以修改文件更简单。只需将下列配置,写入settings.xml的profiles标签内。
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
上文件,指定了jdk版本为1.8,已经创建的版本会自动调整。这样就完成了maven中java项目的创建。这时候只需要右键pom.xml文件选择maven,但你有程序时,出现maven命令。如果没有想要的命令可以在Maven build...这个后面带省略号中输入自己需要的命令。
下面是maven javaweb项目的创建。
maven 的web项目需要在创建时指定。
第一步相同,之后就是
要注意,选择打war包,在创建完成后就会报错
因为maven中没有提供tomcat给eclipse的运行时环境,或者说是缺少servlet-api的jar包。所以在pom中添加即可,如下
自己找个servlet-api能用就行。在添加过后还是有报错,报错信息如下
web.xml is missing and <failOnMissingWebXml> is set to true
就是说我们缺少web.xml,打开src-->main-->webapp。我们发现里面什么都没有,与以前创建的web项目相比,缺少了META-INF和WEB-INF还有其内部的信息。所以下一步是添加这些文件。注意在使用Maven创建web项目的时候,webapp代替了原本的WebContent目录。所以步骤,在maven的web项目上右键-->properties得到下图
选择project facets,然后取消Dynamic Web Module前面的勾选。然后apply,然后再将Dynamic Web Module选上,如下
得到这一行后,点开如下
点击OK然后apply and close,就可以得到需要的目录结构和web.xml文件,此时错误消除。但是如果需要在jsp文件中正常使用,即有正确提示还需要一个jsp-api的依赖,如果想要使用标签库中的标签还需要jstl标签库,所以一般的初始配置如下,注意有的是<scope>provided</scope>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.testweb</groupId> <artifactId>webexample</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- 识别servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- 正常使用jsp中的el表达式 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!-- jstl标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> </project>
OK。