最近因为开始写一些集合框架的小项目,在看到一写博客的时候发现好多的人都是使用的maven创建的项目,其实开始学javaweb就应该使用maven来创建项目,先不说maven提供的项目管理上的好处,光是maven解决了jar包的依赖问题就非常的好,直接从中央仓库中拿。
优点:
先说说使用maven的优点在哪里,因为maven是可以跨平台的,所能够最大的消除构建的重复。比如方法的重复、文档的重复、编码的重复等。
还有其他的一些优点:
1、提供了中央仓库,能够帮助我们下载构件
2、通过坐标系统来准确的定位每一个构件
3、提供了一个免费的中央仓库,可以在里面找任何流行的开源软件,并且通过衍生工具Nexus进行快速的搜索
4、对于目录结构的要求,约定优于配置,使用户在项目之间的切换更加容易
构建工具比较:
1、IDE : 依赖大量的手工操作,每个dev的喜好不同,就导致了配置不一样
2、make :难移跨平台
3、Ant :可以跨平台,但是过程式的,有重复请的工作。
4、Maven: 是声明式的,而且没有依赖管理
eclipse中安装使用maven去创建一个java web项目
eclipse的maven插件不能够代替maven,所以要去单独的下载maven。
最新的eclipse neon已经集成了maven插件,这里就不介绍了。老版本的eclipse下载插件可以百度查下
下载maven到官网上去下载,http://maven.apache.org/download.cgi
这里选择第一个进行下载
下载后解压缩到自己指定的文件夹中去,然后打开cmd,进入到maven的bin目录下,
使用命令mvn -version
,来验证是否安装成功(如果不使用命令行则不需要去配置环境变量)
修改maven的仓库位置
修改仓库的位置是为了能够方便的对仓库中的文件进行查看管理
找到maven文件下的conf中的setting.xml配置文件,可以看到注释中说明默认的仓库是放在用户的临时文件夹中.m2文件下的repository下
这里我们将仓库地址修改到我们制定的路径下,这里我指定的是F:\eclipsemaven\mavenrepository 然后在注释下面把相应的路径写入就行
在eclipse中配置maven
首先打开window-preferences-Mave
打开installation ,点击Add按钮,选择你本机中安装maven的路径值
配置设置的仓库
点击Browse 选择你maven中的setting.xml文件然后点击OK就可以了。
创建一个javaweb实例测试
1、创建一个maven项目
2、在这里不勾选第一个选项,在以后使用maven中的子工程时候再勾选
3、选择要创建项目的类型,这里点击maven-archetype-webapp创建web项目
4、填写group id 以及 项目名称,点击finish完成创建
5、创建项目后生成的目录为:
目录说明:
src
-main
-bin脚本库
-java java源代码文件
-resources资源库,会自动复制到classes目录里
-webapp web应用的目录。
-WEB-INF,css,js等
-test
-java单元测试java源代码文件
目标
LICENSE.txt项目的许可证
README.txt项目的自述
工程根目录下就只有src和目标两个目录
目标是有存放项目构建后的文件和目录,jar包,war包,编译的类文件等。
目标里的所有内容都是maven构建的时候生成的
运行例子
然后将项目发布到tomcat中,并启动tomcat,成功运行。
Maven镜像修改
在后面写项目使用maven下载jar文件的时候会很慢,所以还是要上国内镜像的车。其中阿里爸爸的车贼快
修改方法为:找到maven根目录下setting.xml文件,在mirrors元素下添加子元素mirror即可:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
或者直接加在repositories里面:
<repositories>
<repository>
<id>aliyunmaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
在gradle里面配置如下:
repositories {
// maven库
def cn = "http://maven.aliyun.com/nexus/content/groups/public/"
def abroad = "http://central.maven.org/maven2/"
// 先从url中下载jar若没有找到,则在artifactUrls中寻找
maven {
url cn
artifactUrls abroad
}
}
pom.xml文件讲解
- project:pom.xml文件中的顶层元素;
- modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
- groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。
- artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式:
<artifactId>- <version>. <extension>(比如:myapp-1.0.jar)。
version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
name:项目的显示名称,通常用于maven产生的文档中。
url:指定项目站点,通常用于maven产生的文档中。
description:描述此项目,通常用于maven产生的文档中。
properties:pom文件中的配置信息,可以配置全局变量
dependencies:依赖配置集,里面可以添加需要的jar的依赖信息
下载依赖一般到maven的中央仓库中下载:https://search.maven.org/
pom.xml文件运行
pom.xml一般在添加依赖后保存文件,就会自动的去安装jar文件到项目中。
创建完项目后,我们可以往项目里添加代码并使用Maven的所有全新技巧。注意以下命令必须在pom.xml文件所在的目录中运行。
- – mvn test:运行应用程序中的单元测试
- – mvn package:依据项目生成jar文件
- – mvn install:将项目的jar文件添加到库中, 以备依赖此项目时使用
- – mvn site:生成项目相关信息的网站
- – mvn clean:清除目标目录中的生成结果
- – mvn eclipse:eclipse:生成Eclipse项目文件
使用classpath来确定文件的位置:
在maven的项目中经常会使用classpath来确定文件的位置,不同文件夹下的classpath确定位置也是不同的,下面是不同文件夹下classpath所相对的位置:
maven项目分为src目录,resource目录,test/src目录,test/resource目录:
其中src和resource对应到项目的target\classes目录,如果在src目录调用classpath,则class的根目录为target\classes;
test/src,test/resource对应到test-classes目录,如果在test/src目录调用classpath,则class的根目录为target\test-classes;
总结:
在实际的开发过程中,我们用到Maven对我们的项目进行管理的地方,就是通过pom.xml文件中添加所需的第三方jar包的坐标让maven在中央仓库中找到相应的jar包,然后下载到本地仓库中为我们所使用,有了maven以后,我们再去使用第三方的jar包之后,就不需要再去网上找相关的jar包进行下载及导入到path环境中,maven为我们的项目开发提供了很好的管理
因为是第一次使用maven,所以说有些细节的地方可能没有说到,可以到这篇博客中看下
http://blog.csdn.net/lddongyu/article/details/1815265