本文主要是介绍【maven之四】 --maven仓库和常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这几天项目开发中,经常会出现jar当不下来,jboss起不来的时候,所以经常做的动作就是clean项目,instal项目,project clean项目,但是对于这些操作,进一步的理解又说不出来。所以就查了一下这几个命令到底是干嘛的,要理解这几个命令,还得从maven 的仓局机制和声明周期说起。
一、Maven仓库
1,maven仓库原理
Maven仓库是基于简单文件系统存储的,只要在文件系统中没有发现相关的文件,说明这几种依赖并不存在,因此我们很容易在本地仓库查找具体的依赖是否存在。
2,仓库的分类
如上图所示,Maven的仓库分为本地仓库和远程仓库。远程仓库又包括中央仓库,私服,其他公共库,我们常用就是中央仓库和私服。
1)本地仓库
就是我闷自己电脑上的文件,所以他是唯一的,项目构建时候首先在本地仓库查找依赖,如果本地没有依赖时,才会去寻找远程仓库。
本地仓库的配置和存放配置过程:
a. 解压maven安装包到D盘根目录。
b. Eclipse—windows-Perferences—Maven-Installations—add-installation type 选择maven安装目录。在Installations中选择新配置的maven选项。
c. Eclipse—windows-Perferences—Maven—User Settings
点击Restore Defaults,没有反应但是会在C:\Users\${User}\.m2\路径下生成settings.xml文件。
d.打开资源管理器,找到C:\Users\${User}\.m2目录下的settings.xml,修改内容为自己需要配置的本地仓库、私服、远程仓库的地址链接,保存并关闭User Settings窗口。
usr Setting 中的主要内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!-- 设置本地仓库路径 --><localRepository>D:\needforjava\maven\repository</localRepository><!-- 设置发布 jar 包时的用户名及密 --><servers><server><id>releases</id><username>***</username><password>****</password></server><server><id>snapshots</id><username>****</username><password>****</password></server> </servers><!-- 设置 maven 的远程仓库为 nexus --><mirrors><mirror><id>nexus</id><mirrorOf>central</mirrorOf><name>nexus repository</name><url>http://192.168.********</url></mirror></mirrors><!-- 设置 central 的路径等 --><profiles><profile><id>central</id><repositories><repository><id>central</id><name>Central</name><url>http://******</url></repository></repositories><pluginRepositories><pluginRepository><id>central</id><name>Central</name><url>http://*******</url></pluginRepository></pluginRepositories></profile> </profiles><activeProfiles> <activeProfile>central</activeProfile></activeProfiles><!-- 配置eclipse插件 --><pluginGroups><pluginGroup>org.mortbay.jetty</pluginGroup> <pluginGroup>org.codehaus.cargo</pluginGroup><pluginGroup>org.jvnet.hudson.tools</pluginGroup></pluginGroups></settings>
e.再次进入 Eclipse—windows-Perferences—Maven—User Settings
Global Settings选择maven 安装目录下conf文件夹下的settings.xml
检查Local Repository 项,如果为D:/maven/repository则配置成功,否则重新配置上一步。
2)远程仓库
指的是非本地的所有其他仓库,中央仓库和私服都是远程仓库的一种,如果本地仓库没有项目构建需要的jar包,项目会自从从远程下载,如果远程仓库也没有,项目就会报错。中央仓库是默认的远程仓库,Maven安装文件自带远程仓库的位置是:http://repo.maven.apache.org/maven2
3)远程仓库---私服
私服是一种特殊的远程仓库,它 是架设在局域网内的仓库服务,服务代码广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在构件,则从外部的远程仓库下载,同时缓存在私服上,然后为Maven下载请求提供服务。另外,对于第三方的jar无法从仓库下载(jebc驱动)可以从本地上传到私服供客户端下载。
优点如下:①节省外网的宽带。②加速Maven构建 ③部署第三方构件 ④提高稳定性,增强控制,因为内网相对外网来说,一般比较稳定。⑤降低中央仓库的负荷 ,原因是中央仓库的访问量太大。
第二部分:maven命令
1,update Project(Alt+F5)
本身是更新项目的意思,因为你的工程是一个Maven工程,你的工程做了一些修改之后,必须让Maven重新生成或修改相关文件。否则Ecplise将不知道变化。(当然也可以手动修改,让它知道,但是这样不推荐。)例如:①用在maven中是指pom.xml文件改动之后,需要执行Maven、Update Project来更新外部依赖的jar包。
对比:svn的update与Maven的updtae Project作用有什么不同?
SVN update只是更新项目的svn仓库。
maven update project则是进行一系列的操作。具体跟自己的配置有关,可能包含以下操作,更新SVN、更新项目关联、编译项目、构建发布等。如果jar包都是放在项目中,不是通过Maven管理,那么svn update时就取下来了。如果是用Maven仓库统一管理所有的jar包,那么是通过Maven update来获取。一般情况下,pom.xml修改之后,Maven会自动执行项目的Update。
2,maven install
打包并且安装到本地仓库,此时本地仓库会新增maven-quickstart-1.0-SNAPSHOT.jar文件。
相关的命令:
mvn complile 编译项目。
maven package:打包,此时target目录下回出现Maven-quickstart-1.0-SNAPSHOT.jar文件。即为打包后的文件。
3, eaplise -project - clean
①,在ecplise的project菜单下面有一个build automatically.选中这个的话,每次在保存一会就会自动编译。
②,ecplise--->project--->clean...选项将工程中的.class文件删除,同时编译工程,类似于jbuild的rebuild。
由于ecplise的编译是基于时间戳的判断机制的。因此当用户按build all的时候有些ecplise认为时间撮没有改变的类不会被编译。因此需要先clean 一下再编译。这个时候,ecplise会将所有的以前编译信息清除然后编译。
小结:
每次看都会觉得理解多了一点点,多学习几遍理解就深刻了。为什么有些东西总觉得理解不透,应该自己重复学习的次数少。
这篇关于【maven之四】 --maven仓库和常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!