Maven入门

Maven

提出需求

做项目需要引入很多jar包

如果使用Spring框架,要引入jar包

SpringMVC Mybatis 都需要很多jar包

解决办法:
使用maven

什么是maven?

  Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具,简单的说就是用来管理项目所需要的依赖且管理项目构建的工具。

maven的安装与配置

类似tomcat maven也是需要安装和配置,还有配置到idea中的

  1. 下载maven 推荐下载tar.gz的解压包
  2. 解压到指定目录
tar -zxvf apa.... ~/maven   

我解压到了~/maven/apache……

  1. 执行命令
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了

  1. 接下来我们对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项目


  1. 这里让我们选模板 因为我们只做演示和试用,所以直接点击下一步

2.这里groupid就是公司开发组的id,第二个就是项目名,第三个是版本

  1. 然后选择项目路径
  2. 此时进入了编码界面

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可以自动联想了,说明下载好了。

此时的项目可以直接添加框架支持了


依赖管理

  1. Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务。maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。在pom.xml中通过plugin标签引入maven 的功能插件。
  2. 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>
  1. 导入依赖
    导入依赖坐标,无需手动导入jar包就可以引入jar。在pom.xml中使用标签引入依赖。
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
</dependency>
  1. 关于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的内容,后续可能会有补充