Maven入门
Maven
提出需求
做项目需要引入很多jar包
如果使用Spring框架,要引入jar包
SpringMVC Mybatis 都需要很多jar包
解决办法:
使用maven
什么是maven?
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具,简单的说就是用来管理项目所需要的依赖且管理项目构建的工具。
maven的安装与配置
类似tomcat maven也是需要安装和配置,还有配置到idea中的
- 下载maven 推荐下载tar.gz的解压包
- 解压到指定目录
tar -zxvf apa.... ~/maven
我解压到了~/maven/apache……
- 执行命令
vim ~/.bash_profile
添加语句:
export M2_HOME=$HOME/maven/apache-maven-3.6.2
export PATH=$PATH:$M2_HOME/bin
然后
resource ~/.bash_profile
然后执行
mvn -v
显示
就是安装成功了
如果你使用的是zsh 那么就需要修改你的zshrc文件 添加
source ~/.bash_profile
这样就可以自动刷新.bash_profile了
- 接下来我们对idea进行配置
切记,不但要配置当前项目,还要配置其他项目!
5.配置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>
使用阿里云的maven镜像,可以使maven下载速度更快哦
安装完毕啦!
新建一个maven项目
这里让我们选模板 因为我们只做演示和试用,所以直接点击下一步
2.这里groupid就是公司开发组的id,第二个就是项目名,第三个是版本
- 然后选择项目路径
- 此时进入了编码界面
maven项目路径详解
可以看看当前的目录结构
src中有main文件夹和test文件夹
main文件夹主要存放你的java代码,test文件夹主要用来运行你自己写的测试类。
pom.xml就是标识我们所需要的jar包的文件,如果需要添加jar包依赖,要向这个文件中添加代码
例:添加mysql的java链接jar包:
前往maven官网 :获取xml代码
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
将代码放置在pom.xml中,要放置在dependencies标签中
然后maven就会开始自动下载依赖包了
当字体不再是红色 说明jar包加载好了 此时就可以使用jar包啦!
此时idea可以自动联想了,说明下载好了。
此时的项目可以直接添加框架支持了
依赖管理
- Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务。maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。在pom.xml中通过plugin标签引入maven 的功能插件。
- JDK编译版本的插件
插件可以去其他第三方仓库进行寻找,或者使用IDEA集成外部Tomcat8及其以上版本,进行项目的发布。
<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>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
- 导入依赖
导入依赖坐标,无需手动导入jar包就可以引入jar。在pom.xml中使用标签引入依赖。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
- 关于scope
- compile 编译、测试、运行,A在编译时依赖B,并且在测试和运行时也依赖
例如:strus-core、spring-beans。打到war包或jar包 - provided 编译、和测试有效,A在编译和测试时需要B
例如:servlet-api就是编译和测试有用,在运行时不用(tomcat容器已提供) 不会打到war - runtime:测试、运行有效
例如:jdbc驱动包 ,在开发代码中针对java的jdbc接口开发,编译不用 在运行和测试时需要通过jdbc驱动包(mysql驱动)连接数据库,需要的 会打到war - test:只是测试有效,只在单元测试类中用 例如:junit 不会打到war
按照依赖强度,由强到弱来排序:(理解) compile> provided> runtime> test
以上就是全部maven的内容,后续可能会有补充