【萌新】Maven入门理解

Maven的产生
许多Java项目需要各种jar包。如果每个项目重复使用相同jar包,在之前需要重复下载,这会占用许多重复内存。Maven的存在是为了管理jar包,在不同项目之间调度jar包

Maven的工作原理
maven的核心文件是pom.xml文件。其中记录了所有jar包的依赖关系。例如:

    <dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-api</artifactId>
		<version>1.7.5</version>
	</dependency>

Maven的语义是“知识积累的意思”,Maven有一个远程仓库,里面由项目开发需要的几乎全部公用jar包,可以搜索,找到相应版本。点进去下方就有如上格式的依赖关系。将它复制粘贴到所需项目的pom.xml文件中。当开发项目时,Maven会根据这个文件先去本地的Maven仓库寻找是否由所需jar包,如果没有,则按照依赖中的版本和名字去远程仓库将jar包下载到本地。当此后其他项目再需要使用jar包的时候,添加依赖即可。如果想更新jar包的版本可以修改pom文件中的版本,Maven将自动完成本地仓库的更新

Maven可以做的事
项目管理和构建。前者是上述的jar包管理,后者表示Maven也可以像IDE一样提供编译功能

Maven的下载安装与配置
下载安装一键脚本

sudo apt-get maven

此指令下载的.deb包在目录 var/cache/apt/archives中,这个位置可以在etc/apt/sourcelist文件中更改
查找安装位置可以用

whereis maven

得到安装的目录为 /usr/share/maven
这里由maven的可执行文件bin目录
配置环境变量的时候是两句话
配置一个MAVEN_HOME指向maven的根目录
配置一个PATH指向可执行文件
source一下

source ~/.zshrc

可以用echo检查一下

echo $MAVEN_HOME

Maven指令
在当前项目的根目录下执行常用指令

mvn -version
mvn compile
mvn clean
mvn test
mvn package --打包成制定类型
mvn install --安装到本地仓库里面

pom的使用方法
父子结构,pom文件专门管理项目模块间的依赖关系
子木块pom中填父工程的坐标,前提是本地仓库中有所需要的依赖

scope生命周期
jar包的生命周期,依赖的阶段作用域
.jar项目经历的阶段是:编译,运行,打包,部署
scope决定它在哪一个阶段有作用,生命周期参数有

  • complie(default),适用于所有阶段
  • provided 类似compile,
  • runtime 只在运行时使用
  • test 只在测试时使用,不会随项目发布
  • system 类似provided,仓库找不到,要在磁盘中找到

Idea中配置Maven
Idea在装的时候选择了maven这个插件。于是在file->settings->build,excutions,deployment->build tools->maven中配置时
maven home directory中由两个选项,一个是bundled,就是Idea自带的,一个是你自己安装的路径。这里建议选第二个,自带的可能比较慢。第二个的路径应该是maven可执行文件的路径,一般是自动识别的
下一个setting file选择安装maven根目录下conf文件中的settings.xml,右侧点击override
下面是本地仓库,我没改,因为我用的ubuntu,没有Windows那种分区,就直接用的默认repo路径

你可能感兴趣的:(学习笔记)