一、maven基本知识



1、groupid、artifactId、version

        groupId:组织标识,例如com.baobaotao.ide,在本地仓库下将是com/baobaotao/ide。        artifactId: 项目名称,例如shop,在本地仓库目录下将是com/baobaotao/ide/shop。        version:版本号,例如1.0,在本地仓库目录下将是com/baobaotao/ide/shop/1.0

         对于pom文件中的第三方jar包依赖,如:

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.2.14.RELEASE</version>
        </dependency>

在远程仓库中必然有一个org/springframework/spring-core/3.2.14.RELEASE目录。



2、pom文件



       a. <parent>标签用于定义父pom文件,例如:

   

<parent>
            <groupId>父模块组织标识</groupId>
            <artifactId>父模块项目名称</artifactId>
模块POM的相对路径,默认为 ../pom.xml</relativePath>
            <version>版本</version>
        </parent>

子模块可继承父模块pom配置。子模块继承这些配置的时候,仍然要声明groupId和artifactId,表示当前配置是继承于父POM的,从而直接使用父POM的版本对应的资源,例如:

 

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>

不写version表示使用父模块pom配置的spring-webmvc,这个功能可以有效的避免多个子模块使用依赖版本不一致的情况,有助于降低依赖冲突的几率。细节参考:



b. pom或者父模块pom配置里定义个版本号,可以使用${}语法取值,例如:

        定义了<junit.version>4.11</junit.version>后可以如下配置version

<dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
        </dependency>



3.修改配置文件自定义本地仓库路径和访问的远程仓库url

        maven安装目录conf文件夹下settings.xml文件记录了maven配置信息。 <localRepository>设置本地仓库位置,<mirror>设置远程仓库url。



4. 配置编译插件,防止update project后jar变为1.5

   

<build>
            <plugins>
                <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                <source>1.7</source>
                <target>1.7</target>
                </configuration>
                </plugin>
            </plugins>
        </build>

这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个编译插件版本,否则会使用编译器默认的source/target版本1.5



5.maven web项目目录结构

src/main/java  项目源代码目录

src/main/resources  项目所需资源目录

src/main/webapp  web应用目录包含WEB-INF,将这个目录部署到服务器

src/test/java  测试代码目录

src/test/resources  测试所需资源目录

target  默认输出目录,存放项目.class文件和打包文件

pom.xml



6.常用maven指令

        mvn archetype:create :创建 Maven 项目

        mvn compile :编译源代码

        mvn test-compile :编译测试代码

        mvn test : 运行应用程序中的单元测试

        mvn site : 生成项目相关信息的网站

        mvn clean :清除目标目录中的生成结果

        mvn package : 依据项目生成 jar、war…… 文件

        mvn install :在本地仓库中安装 jar

        mvn eclipse:eclipse :生成 Eclipse 项目文件

        mvn -Dmaven.test.skip=true : 忽略测试文档编译



7.依赖查找网站

        http://www.mvnrepository.com  这个网站极好



二、eclipse中project facets、java build path、deployment assembly配置



dynamic web module

        project facets下的dynamic web module配置web应用版本,勾选它后出现弹窗可以配置web应用目录,如果遇到勾选后没有弹窗的情况,可以先不勾选点击应用后再勾选即可。注意:修改web应用版本后需要修改对应的web.xml文件。以下是不同web版本下的web.xml配置:

web 2.3
        <?xml version="1.0" encoding="UTF-8"?>  
        <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  
        <web-app>  
        </web-app>
        web 2.4
        <?xml version="1.0" encoding="UTF-8"?>  
        <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"   
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
            xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
        </web-app>  
        web 2.5
        <?xml version="1.0" encoding="UTF-8"?>  
        <web-app xmlns="http://java.sun.com/xml/ns/javaee"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
        version="2.5">  
        </web-app> 
        web 3.0
        <?xml version="1.0" encoding="UTF-8"?>  
        <web-app  
                version="3.0"  
                xmlns="http://java.sun.com/xml/ns/javaee"  
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
        </web-app>



2、java build path

        创建项目各种目录,配置目录的输出文件夹,以及默认输出文件夹,修改jre环境,添加删除依赖jar包、library



3、deployment assembly

        用于配置项目部署资源,通常这样配置: