赞
踩
Apache Maven 是一个软件项目管理和构建工具,可以帮助创建和管理项目
解压文件到sofeware下面去。
mvn --v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: D:\software\apache-maven-3.6.1\bin\..
Java version: 1.8.0_60, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
找到maven的配置文件,配置文件找到localRespitory
D:\software\apache-maven-3.6.1\mvm_resp
使用maven时默认从中央仓库下载所需的包(插件),比较慢,可以配置使用阿里云提供的镜像仓库
编辑maven主目录下的/conf/setting.xml文件,在 标签中添加如下内容:
<mirror>
<id>aliyunmaven</id>
<!--所有都访问这个镜像仓库 -->
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
在idea中配置本地maven,idea也是自带了一个maven的,不过每次都是从中央仓库下载,这里我们修改一下。
四种目录格式:灰色的就是普通文件夹。
maven的一些操作:
clean命令,删除target目录。运行会从成功target目录,里面存放字节码文件。
compile命令:将源代码编译成字节码文件,放在target/classes目录下面。
test:运行test下面的代码。
package:将项目打包成Jar包。
使用了 maven-jar-plugin
插件来配置和打包 JAR 文件 ,主要是mainClass,配置项目的主类
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addClasspath>true</addClasspath> <mainClass>com.njitzx.App</mainClass> <!-- 将 com.example.MainClass 替换为你的主类 --> </manifest> </archive> </configuration> </plugin> </plugins> </build>
在cmd中运行maven项目:
java -jar mavendemo2-v1.1.1.jar
install:点击install命令后,将jar包导入到了maven仓库。
那么如何在其他项目中引用呢?
<dependency>
<groupId>com.njitzx</groupId> //公司域的倒写,自定义的
<artifactId>mavendemo2</artifactId> //项目名称
<version>v1.1.1</version> //版本号
</dependency>
有的时候maven项目会出现一些问题,点击+选择项目的pom.xml文件。
maven项目的核心文件 pom:project object model 项目对象模型
pom.xml是Maven的核心配置文件,与项目构建相关的所有配置都在该文件中
<dependency>
<groupId>com.alibaba</groupId> //公司域的倒写,自定义的
<artifactId>druid</artifactId> //名称
<version>1.1.14</version> //版本号
</dependency>
坐标
用来唯一的标识每个项目,必须为项目定义坐标,且坐标必须唯一
Maven坐标是通过一些元素定义的:groupId、artifactId、version
scope表示依赖的作用域,用来配置依赖的jar包的可作用范围,即在什么地方可以使用。
全局属性,一般情况下用于定义全局的jar的版本 通过${标签名}得到全局的jar版本。
使用快捷键 ctrl+alt+v 将版本添加上去。
:::info
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>5.3.27</spring.version>
:::
如果有私服,或者有些jar包阿里云上面没有。先去私服上面找,如果这个地方还找不到就去maven全局上面找。
插件是一种工具,如:
maven-clean-plugin插件是用来清理项目的工具
maven-compile-plugin插件是用来编译代码的工具
继承 聚合 和 依赖
继承:一个Maven工程继承自另一个Maven工程,分别称为子工程、父工程
实际开发中一个大项目会拆分为多个子项目(子模块/子工程),多个子工程使用的技术基本都相
同,即多个子工程中使用的是相同的依赖或插件等配置,此时可以把相同配置抽取到一个父工程中,进
行统一管理,保持一致性,简化pom.xml配置
在子项目中指定父项目的坐标,并指定父项目pom.xml文件的路径
<parent>
<groupId>net.wanho.study</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 指定父项目pom.xml文件的相对物理路径 -->
<relativePath>../parent/pom.xml</relativePath>
指定父项目的坐标,并指定父项目pom.xml文件的路径
</parent>
如果子项目想继承父项目的jar包,需要在子项目中手动引用,且引用时只需要配置groupId和
artifactId,无需指定版本version
将多个子项目聚合到一个父项目中,然后通过对该父项目进行操作,从而实现对所有的聚合项目的操作
在父项目中聚合子项目:
<!-- 聚合子项目,指定子项目的根目录-->
<modules>
<module>../child01</module>
<module>../child02</module>
</modules>
项目C —> 项目B —> 项目A
概念:如果项目C依赖于项目B,项目B依赖于项目A,则项目C也依赖于项目A,这叫依赖的传递
步骤:
1. 配置依赖关系
child03——>child02——>child01
2. 在child01中添加依赖时,child02和child03会传递该依赖,也会出现该依赖
传递依赖。
多依赖的项目想要打包,在父工程中进行打包操作。因为之间有依赖关系,一个个打包会出现错误。
当我们的idea无法自动下载所需的Maven依赖时,我们可以到Maven的远程仓库中下载所需要的jar包,然后添加到我们的本地仓库中。
mvn install:install-file
-Dfile=D:\mybatis-3.5.10.jar //所在文件夹目录
-DgroupId=org.mybatis 公司域名倒写
-DartifactId=mybatis 名称
-Dversion=3.5.10 版本号
-Dpackaging=jar 导入的形式
添加成功
插件
maven-clean-plugin 插件是用来清理项目的工具
maven-compile-plug
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。