《maven实战》学习札记

《maven实战》学习札记(1)

导入作者的代码以后,发现有的jar包实在是下载不下来,速度太慢,就结合书上的知识,做了如下操作:
(1)在settings.xml文件中用了代理,这里的标签代表具体代理的是哪个标签,这里的例子是代理maven中央仓库

 <mirrors>
     <mirror>  
         <id>central_mirror</id>  
         <name>internal central_mirror epository</name>  
         <url>http://repo1.maven.org/maven2/</url> 
         <mirrorOf>central</mirrorOf>    
    </mirror>
  </mirrors>

(2)在pom.xml文件中配置外部仓库,即配置 标签, 代表是否可以从这个仓库下载稳定版的构件,意思同理代表是否支持下载快照版的构件。

<repositories> 
        <repository>    
           <id>oschinaRepository</id>    
           <name>local private nexus</name>    
           <url>http://maven.oschina.net/content/groups/public/</url>    
           <releases>    
               <enabled>true</enabled>    
           </releases>    
            <snapshots>    
                <enabled>true</enabled>    
            </snapshots>    
        </repository>    
</repositories>  

通过上述的操作之后,jar包的下载就比较快了。

针对作者的5.9.3节优化依赖的内容,我也尝试了一下,觉得很不错,依次在图中goals输入下列命令
输入goals窗口
1. dependency:list
得到如下的结果,可以看到整个项目的已解析依赖的情况
这里写图片描述
2. dependency:tree
相比list的情况,这个命令会把依赖情况解析为依赖树,通过依赖树就能很清楚的看到某个依赖是通过哪条传递路径引入的。
这里写图片描述
3. dependency:analyze
按照书上的步骤,故意去掉一个spring-context的依赖,就会出现下图的情况
这里写图片描述

出现used undeclared dependencies:表示项目用到的,但没有显式声明的依赖,这种情况需要重视,一旦这些依赖发生变化,比如升级依赖(代码接口变化等细节),就会导致编译失败。

而unused declared dependencies ,指的是项目中没有用到的依赖,但却显式声明的依赖。但我们不能直接删除这些依赖,因为dependency:analyze只会分析编译主代码和测试代码用到的依赖,对于运行阶段用到的依赖无法察觉,spring-core和spring-beans是运行springFrame项目必要的类库!所以个人感觉不要管这些unused declared dependencies,除非你非常确定(反正我是不管<( ̄3 ̄)> )。

快照版本的理解

我对快照版本的理解:假设小王和小孙两个人分别开发两个A,B模块,但是B模块依赖A模块,那样小王只要将A模块大致完成后,声明为snapshot形式,并发布到仓库,而小孙在B模块的pom.xml引入这个A模块的snapshot版本,那样小王可以不断完善A模块的功能,而小孙基本不用管,B模块始终是A模块的最新版(因为是由Maven来管理识别A模块的最新版),当A模块开发完成后,将A模块的release版发布到仓库中,小孙同样修改pom,使B模块依赖A的release版即可,通过上面的例子可以看出,快照版在开发阶段可以省去很多麻烦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值