maven教程--结合eclipse
maven教程--结合eclipse
概念与优势
maven是一种非常流行的项目管理工具,它将项目依赖的jar包都变成了配置文件---pom.xml。
maven通过pom文件读取需要哪些依赖包,然后到网上mavenRepository下载依赖包到本地。用到的依赖包以及相关文件都会下载到指定本地目录中,形成本地库。在编译项目时,再引入你的项目中。
结构如下图:
maven源网址在国外,下载依赖包非常的缓慢甚至失败,所以想要顺畅得使用maven,还需要配置国内镜像。具体操作见下文
项目源码大小大大减小
它的优势在于maven结构的项目源码非常小,将动辄几MB,几十MB的依赖jar包,变成了几十个字节的配置文件。将项目源码从几百MB缩减到不到1MB,利于下载与上传。在github开源社区上使用非常广泛。
多级依赖包自动下载
几乎所有发布的jar包都已经支持maven,在各自的pom文件中,标注依赖了哪些jar包以及版本号。这样,maven就可以将多级依赖包都一并下载。大大简化依赖包下载工作。
轻松解决依赖包冲突
发生依赖冲突时,找到引入依赖包的配置并去除(exclusion)依赖即可。通过使用界面化工具可以更方便得完成去除依赖操作。具体操作见下文
实际操作
这里都使用eclipse来做说明,eclipse自带maven插件。
新建maven项目
菜单栏 File --> new --> project ,搜索maven,选择maven project
勾选 create a simple project (skip archetype selection),建立简单的项目,不使用模板。
创建完成后 结构如下
maven默认目录结构
常用路径说明:
- src/main/java 源码路径
- src/main/resources 配置文件路径
- src/main/webapp web项目页面代码
- src/test/java 测试代码路径
- src/test/resources 测试配置文件路径
其他:
- target/classes 源代码编译生成的class文件
- target/test-classes 源代码编译生成的class文件
建议使用maven默认的目录结构,阅读他人,或者他人在阅读你的代码将变得更容易。使用非默认结构也可以在pom文件中进行配置。
原有项目转换成maven项目
项目名右键 --> configure --> convert to maven project 即可
由于普通java项目与maven项目结构不同,需要移动原有文件到默认maven结构目录下,或者在pom文件中进行目录配置。
项目刷新
maven结构的项目,其项目配置都写在pom文件中,项目刷新需要使用 ALT+F5, 或者 项目名右键 --> maven --> update project。
pom文件简介
pom里面除了配置依赖包,还有jdk版本、打包的配置(web包、可执行jar)等等。
pom文件中的配置项非常丰富,这里只做一些简单介绍。
如何配置依赖
mavenRepository网站上搜索选择你想要的依赖包名称,如spring-core
选择一个中意的版本
复制配置到pom文件中dependencies标签下即可。
如何配置国内源
maven根目录在C:\Users\{用户名}\.m2\
修改maven根目录下的conf文件夹中的setting.xml文件,内容如下:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
之后就能享受如飞的maven下载速度。
如何去除二次依赖
例如去除 common-logging 依赖
eclipse中打开pom文件切换到Dependency Hierarchy页面
选中commons-logging,右键 exclude maven artifact... 保存
依赖中commons-logging就消失了。
pom文件中表现为 增加了exclusion 去除了commons-logging
maven常用命令/生命周期
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:
- validate,验证工程是否正确,所有需要的资源是否可用。
- compile,编译项目的源代码。
- test-compile,编译项目测试代码。
- test,使用已编译的测试代码,测试已编译的源代码。
- package,已发布的格式,如jar,将已编译的源代码打包。
- integration-test,在集成测试可以运行的环境中处理和发布包。
- verify,运行任何检查,验证包是否有效且达到质量标准。
- install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
- deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
- generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。
这些命令在eclipse中 项目名右键 run as --> maven build --> goals 输入框中使用
maven打包
pom文件中增加配置
war包
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6.0</version>
</plugin>
</plugins>
</build>
可执行jar包
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>***</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
***填写mainClass
带依赖打包
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
然后执行 maven package
生成打包文件在项目路径 target目录下 .jar/.war文件
其他
maven除了结合eclipse使用 ,也是可以在windows linux下单独使用的。
转载于:https://my.oschina.net/u/3708488/blog/1557994
上一篇: 1029. Median (25)
推荐阅读
-
maven安装以及eclipse配置maven的方法
-
Eclipse创建Maven工程总是出现pom.xml报错怎么办?
-
eclipse打开工程文件(eclipse使用教程)
-
初次使用IDEA创建maven项目的教程
-
新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)
-
vue2.0结合webpack的路由配置教程
-
荐 Maven写rabbitMQ教程02
-
AI结合c4d设计三维立体文字和图案的详细教程
-
Eclipse如何导入web项目 Eclipse导入web项目详细攻略教程
-
eclipse如何导入maven项目 eclipse导入maven项目详细教程攻略大全