1.1 了解Maven,搭建Maven环境
1.1.1 maven概述
- Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven工程该的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件
- Maven和Ant的不同
Ant为Java技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。
- 参考文档
- 文档1:Maven百度百科
- 文档2:Maven那点事儿(Eclipse版)
- 文档3:Maven工程入门
- ★★文档4:Apache Maven 入门篇(上/下)
1.1.2 搭建环境
- 下载Apache-Maven,解压
- 配置Maven的环境变量:
- 配置Maven_Home,值为解压缩后的Maven包地址
- Path添加Maven配置:%MAVEN_HOME%\bin;
- 测试:dos环境下输入:mvn -v 如果出现maven相关信息,说明Maven配置成功
1.1.3 创建Maven本地库
在创建Maven工程时候,Maven默认创建库在C盘,这样我很不爽,于是我开始构建本地非默认的Maven仓库。以下是相关内容。
本地仓库是远程仓库的一个缓冲和子集,当你构建 Maven 项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库, Maven 在构建的时候会报错,这种情况可能发生在有些 jar包的新版本没有在Maven仓库中及时更新,或者该包是非开源包,如ojdbc.jar,你可以通过将源jar包下载下来然后安装解决。
配置本地仓库
- Maven 缺省的本地仓库地址为 ${user.home}/.m2/repository。也就是说,一个用户会对应的拥有一个本地仓库。
- 可以通过修改${user.home}/.m2/settings.xml配置这个地址:
<settings> ... <localRepository> D:/HwRepository/maven_repository</localRepository> ... </settings>
如果你想让所有的用户使用统一的配置那么你可以修改 Maven 主目录下的 setting.xml:
${M2_HOME}/conf/setting.xml
也可以通过在运行时指定目录(不推荐这么做):
mvn clean install -Dmaven.repo.local=/home/juven/myrepo/配置中央仓库
配置远程仓库
什么时候配置远程仓库
当你连接中央仓库的速度比较慢时,或者你为你的公司搭建了自己的仓库,比如 Nexus 仓库管理 ( 后面我会介绍 ) ,又或者你苏需要的 jar 存在另外一个公共仓库,比如我们配置一个国内的镜像地址:<project> ... <repositories> <repository> <id> maven-net-cn </id> <name> Maven China Mirror </name> <url> http://maven.net.cn/content/groups/public/ </url> <releases> <enabled> true </enabled> </releases> <snapshots> <enabled> false </enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id> maven-net-cn </id> <name> Maven China Mirror </name> <url> http://maven.net.cn/content/groups/public/ </url> <releases> <enabled> true </enabled> </releases> <snapshots> <enabled> false </enabled> </snapshots> </pluginRepository> </pluginRepositories> ... </project>
★★★其它更加详细内容请参考文档:【maven 建立本地仓库】
1.1.4 其它简单操作Maven
- Maven工程的目录结构(契约式):
src/main/java //源码
src/main/resource //配置文件
src/test/java //测试文件
src/test/resource //测试文件的资源文件 - 运行Maven
Maven工程运行:右键 -> run as -> Maven install ==> 将在target目录下生成了war包
Maven工程清除:右键 -> run as -> Maven clear ==> 作用类似tomcat中的clear - Maven项目生成war包
- 配置pom.xml文件,在overview视窗里配置packaging为 war
- 点击 pom.xml右键,run as 选择 install 或是 package
如果项目没问题,配置没问题就会在项目的target的目录里生成 war文件
Maven工程生成可执行的jar包
参考文档:MAVEN工程生成可执行的jar包
在pom.xml中添加下面与同级别的标签。例示:<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>cn.com.taiji.backGroundServer.main.BootStart</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
- Maven工程由于jar包报错的原因之一
如果maven工程在下载jar包出现错误而至工程报错的情况下可以尝试更新工程中所有的包 - 第一种方式:用myeclipse的情况下
关闭myeclipse,删除已经下载到本地maven仓库的所有包
开启myeclipse,重新maven install - 第二种方式:dos环境下进入工程根目录下
mvn -clean 清空所有的包
mvn -install -U
- Maven工程由于jar包报错的原因之一
1.1.5 eclipse创建Maven web项目
- 参考文档1:Eclipse+Maven创建webapp项目
- 参考文档2:Eclipse下如何创建Maven Web项目
- 参考文档3:Eclipse使用Maven构建web项目
- 创建过程
- 开启eclipse,右键new–>other,如下图找到maven project
- [New Maven Project]:勾选Create a simple project;勾选 Use default Workspace location
- 输入maven项目的基本信息:Group Id相当与建立的Package,ArtiFact Id相当于给该包起的一个短别名(自己理解的)–>点击Finish完成
- 选择项目,右键选择Properties,进入属性页面,选择到Maven菜单下,选择与web相关的模块
- 通过BuildPath选择你所需要的jdk或jre版本,并去掉新建工程时默认的jdk或jre版本
- 此时webapp下的结果还没有显示出来,因为此时我们还没有配置此的项目为web项目,再次进去Properties配置: