一、maven基本知识
1、groupid、artifactId、version
用eclipse ee创建web项目时需要输入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>
<relativePath>模块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,这个功能可以有效的避免多个子模块使用依赖版本不一致的情况,有助于降低依赖冲突的几率。细节参考:http://blog.csdn.net/wanghantong/article/details/36427411
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配置
1、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
用于配置项目部署资源,通常这样配置: