* 解决导入java类依赖的jar
* 解决jar之间的依赖和冲突
* jar包管理,成员使用通用的maven配置文件,不用自己手动去下载jar
* maven基于项目对象模型,除了避免jar冲突或重复引用相同jar包等问题,还提供一些方便的工具或插件。如Tomcat插件
- maven目录
- bin:含有mvn运行的脚本
- boot:含有plexus-classworlds类加载器框架
- conf:含有settings.xml配置文件
- lib:含有maven运行时所需的java类库
- maven的安装
1. 解压
2. 设置系统环境变量:MAVEN_HOME(路径为解压路径 F:\xx\apache-maven-xxx)
3. 设置环境变量Path,将**%MAVEN_HOME%\bin**加入Path中,一定要注意要用分号;与其他值隔开
4. cmd(mvn -v)查看maven版本
- maven项目的目录约定
MavenProjectRoot(项目根目录)
|----src
|----|----main
|----|----|----java ——存放项目的.java文件
|----|----|----resources ——存放项目资源文件,如spring, hibernate配置文件
|----|----test
|----|----|----java ——存放所有测试.java文件,如JUnit测试类
|----|----|----resources ——存放项目资源文件,如spring, hibernate配置文件
|----target ——项目输出位置
|----pom.xml ——用于标识该项目是一个Maven项目
- maven常用命令
- mvn compile:编译源代码
- mvn test-compile:编译测试代码
- mvn test:运行测试
- mvn site:产生site
- mvn package:打包
- mvn install:在本地repository中安装jar
- mvn clean:清楚产生的项目
- mvn eclipse:eclipse:产生eclipse项目
- mvn idea:idea:产生idea项目
- mvn jar:jar:只打jar包
- mvn dependency:list:查看当前项目已被解析的依赖
- mvn deploy:上传到私服
- mvn compile、mvn install、mvn deploy区别
- mvn compile:编译类文件
- mvn install:包含mvn compile,mvn package,然后上传到本地仓库
- mvn deploy:包含mvn install,然后上传到私服
- mavne的pom.xml
<properties>
<mybatis.version>3.2.8</mybatis.version>
<mysql.version>5.1.32</mysql.version>
。。。。
<properties>
<dependencyManagement>
</dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
。。。
</dependencies>
<dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
- IDEA 和 eclipse 的区别
- IDEA 的 module 相当于 eclipse 的项目
- IDEA 的 poject 相当于 eclipse 的工作空间
- IDEA 创建 maven 时的模板
Archetype:骨架的意思,是Maven工程的模板工具包
Archetype ID |
说明 |
maven-archetype-archetype |
一个样例原型 |
maven-archetype-j2ee-simple |
简单的J2EE应用程序样例 |
maven-archetype-mojo |
Maven插件样本的示例 |
maven-archetype-plugin |
Maven插件样本 |
maven-archetype-plugin-site |
Mave插件网站的样例 |
maven-archetype-portlet |
JSR-268门户样例 |
maven-archetype-quickstart |
Maven工程样例 |
maven-archetype-simple |
一个简单的Maven工程 |
maven-archetype-site |
Maven网站样例 |
maven-archetype-site-simple |
Maven网站样例 |
maven-archetype-webapp |
Maven的Webapp工程样例 |
- 常用Archetype
- maven-archetype-quickstart
- 一个包含junit依赖声明的pom.xml
- src/main/java主代码目录及一个名为App的类
- src/test/java测试代码目录及一个名为AppTest的测试用例
- maven-archetype-webapp
- 一个最简单的Maven war项目模板,当需要快速创建一个Web应用的时候可以使用它,包括一个packaging为war且带有junit依赖声明的pom.xml
- src/main/webapp/目录
- src/main/webapp/index.jsp文件
- src/main/webapp/WEB-INF/web.xml文件
- maven项目的父工程要先 install ,子工程才可以依赖
- IDEA 右边的 maven 依赖报错的解决方法:
- 通过修改父工程管理的版本尝试解决
- 重新下载资源文件并 Reimport
- pom.xml 中 project 标签红色波浪号的解决方法
- 确保 artifactId 等标签参数和父工程一致
- maven 的 pom.xml 中 tomcat 插件的使用
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>