maven学习笔记
序言:本文记录了maven相关知识,仅供个人学习笔记、如果能够帮助到大家,不胜荣幸。
官方文档:http://maven.apache.org/download.cgi
可以看到maven版本对应不同版本的jdk有要求的
点击下载windows版本的maven:
解压之后需要配置maven的环境变量:maven_home、path
maven_homr:c:\users\李云峰\downloads\apache-maven-3.6.0-bin\apache-maven-3.6.0
path:%maven_home%\bin
如何测试maven安装成功?
cmd ---->mvn -version
maven的项目结构:
项目名称
src
main
java
resources
test
java
resources
webapp
target
pom.xml
maven常用命令:
maven clean:清除,删除项目当中的jar等文件
maven compile:编译
maven test:测试
maven package:打包,打包只打到项目中
maven install:安装,会将jar包达到本地仓库
maven deploy:部署,如果本地或者配置了maven私服,会将jar包达到maven私服,本文后面会介绍如何配置maven私服。
maven能够执行以上命令,因为这些执行的也是maven本身依赖的jar包,在本地仓库路径:c:\users\李云峰\.m2\repository\org\apache\maven\plugin中可以找到。maven包含了项目的清理、编译、测试、打包、部署等所有步骤。
其他:
今天发现idea中,点击项目右键,show in explorer功能挺好用的,可以打开项目存储的位置,以前想要用git(小乌龟),都是记住项目位置,自己点进去的。
maven依赖范围scope
compile:主代码、测试代码、运行时都有效。例子:log4j
test:只对测试代码有效。例子:junit
provider:对主代码、测试代码有效。servlet-api,容器启动后就由tomcat提供服务了
runtime:只在运行时期有效。例子:jdbc驱动
maven*仓库位置
https://mvnrepository.com/tags/maven
使用maven配置tomcat
使用maven配置tomcat,就不需要我们手动配置本地的tomcat,maven加载tomcat,引入插件依赖。
idea中配置maven启动项:
结果输出:
关于maven会有继承、聚合两种方式来处理项目
继承:pom依赖指定maven依赖继承的父pom,依据groupid/artyifactoryid/version/artifactory-version.packaging找到依赖的jar包,前提是父pom已经把jar包达到了本地仓库中,如果是maven私服,那么就需要上传到私服。
聚合:一个项目,分为多个模块(dao、service、controller),依赖与父类pom,避免依赖的重复性,需要注意的是子类也要在pom中指明依赖父类的那些依赖,只是不用写版本号,因为可能不是父类的所有依赖,子类都需要。
接下来介绍如何配置maven私服
- 私服其实是一个软件,用于公司内部网络使用,实现jar包的共享,nexos就是私服软件,下载地址:https://www.sonatype.com/oss-thank-you-win64.zip。
- 需要在maven中配置一旦下载依赖或者插件,就会拦截,得到我们的私服。在pom当中配置一段配置,deploy就会把jar包放到私服上。nexus搭建maven私服的软件。
- 具体搭建私服需要哪些配置?maven的setting具体分析如下?
具体配置本地仓库路径,如果不配置默认是:
default: ${user.home}/.m2/repository、 <localrepository>/path/to/local/repo</localrepository>
配置镜像,镜像需要配置的url,就是我们在私服上看到的链接,需要手动配置到镜像这里,拦截我们达到*仓库的依赖请求,如果私服没有,再去请求*仓库。在maven的setting.xml中需要做的配置。
<mirror> <id>nexus</id> <mirrorof>*</mirrorof> <name>human readable name for this mirror.</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </mirror>
<profile> <id>nexus</id> <repositories> <repository> <id>central</id> <url>http://repo1.maven.org/maven2/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginrepositories> <pluginrepository> <id>central</id> <url>http://repo1.maven.org/maven2/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginrepository> </pluginrepositories> </profile>
<activeprofiles> <activeprofile>nexus</activeprofile> </activeprofiles>
其他
如果想要将项目jar包达到私服,需要在pom.xml中加入如下配置,执行mvn deploy即可。
<distributionmanagement> <repository> <id>releases</id> <name>internal release</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotrepository> <id>snapshots</id> <name>internal snapshots</name> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotrepository> </distributionmanagement>
推荐阅读
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】
-
C语言学习之用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0
-
MySql官方手册学习笔记1―MySql简单上手_MySQL
-
php学习笔记--高级教程--读取文件、创建文件、写入文件
-
PHP微信公众开发笔记(六)_PHP教程
-
值得收藏的asp.net基础学习笔记
-
MVC使用Controller代替Filter完成登录验证(Session校验)学习笔记5
-
intelljj导入maven工程导致电脑卡死问题
-
php编程代码规范学习笔记(适合初学者)
-
和燕十八学习PHP-第二十六天-奇怪的NULL