Maven重点备忘

maven仓库

   本地仓库:Maven 的本地仓库是机器上的一个文件夹。它在你第一次运行任何 maven 命令的时候创建。

   远程仓库:Maven 的远程仓库可以是任何其他类型的存储库,可通过各种协议,例如 file://http:// 来访问。

   中央仓库:Maven 的中央仓库是 Maven 社区维护的,里面包含了大量常用的库,我们可以直接引用,但是前提是我们的项目能够访问外网。

   私有仓库:除了 Maven 的中央仓库外,还有一种就是私有仓库,这种仓库通常都是企业内部创建的一个私有库,用于一些内部jar包的维护与共享。由于网络原因和鉴于安全性的考虑,很多公司的内外网是隔离的,要想直接访问中央仓库是不可能的,并且直接把内部资源暴露在互联网上也是非常危险的,所以这时就需要创建一个私有库。

    备注:寻找顺序:Maven本地仓库==》私有仓库==》中央仓库

    仓库配置示例:

<project>
    ...
    
<profiles>
        
<profile>
  
            
<id>
central
</id>
  
            
<repositories>
                
<repository>
                    
<id>
Central
</id>
                    
<name>
Central
</name>
                    
<url>
http://repo.maven.apache.org/maven2/
</url>
                
</repository>
            
</repositories>
        
</profile>
    
</profiles>
    
<activeProfiles>
        
<activeProfile>
central
</activeProfile>
    
</activeProfiles>
...
</project>

镜像:Mirror 则相当于一个代理,它会拦截去指定的远程 Repository 下载构件的请求,然后从自己这里找出构件回送给客户端。配置 Mirror 的目的一般是出于网速考虑。

  


<mirrors>
    
   <mirror>
      
    <id>
        maven.net.cn
    </id>
      
    <mirrorOf>
        central//拦截哪些仓库
    </mirrorOf>
      
    <name>
        one of the central mirrors in china
    </name>
      
    <url>
        http://maven.net.cn/content/groups/public/
    </url>
    
  </mirror>
  
</mirrors>

   生命周期:内置三个(defaultcleansite

     生命周期是由 一组顺序阶段 构成的一个整体,这么说可能有点绕,那让我们来关注他里面的几个重要的点:

  •  一组:指的是可能有多个

  •  顺序:指的是按照顺序执行,执行某一个阶段的指令时会依次先执行该阶段之前的指令

  •  阶段:指的是具体要执行的内容

依赖( 短路优先、声明优先;排除依赖)

 

依赖管理

     聚合:聚合的优势在于可以在一个地方编译多个 pom 文件

<packaging>pom</packaging>
 
<modules>
     
    <module>module-1</module>
     
    <module>module-2</module>
     
    <module>module-3</module>
 
</modules>

    继承:跟java类的继承类似,Maven 的继承特性也会继承父pom中的依赖

            注意:使用dependencyManagement,可对依赖进行管理。子类只要不引用这个里面写的groupId + artifactId,则不会添              加依赖,这样防止造成重复加了包:如果不使用dependencyManagement,那么只要写了dependency,子pom中会全部              添加到依赖中,而其中很多包可能都用不上。

 

插件:

插件是 Maven 的核心,所有执行的操作都是基于插件来完成的。

为了让一个插件中可以实现众多的相类似的功能,Maven 为插件设定了目标,一个插件中有可能有多个目标。其实生命周期中的每个阶段都是由插件的一个具体目标来执行的

<build>
   
    <plugins>
        
        <plugin>
 
            
            <groupId>org.apache.maven.plugins</groupId>
             
            <artifactId>maven-source-plugin</artifactId>
 
             
            <version>2.2.1</version>
            
            <!-- 配置执行 -->
            
            <executions>
                 
                <execution>
                     
                    <phase>package</phase> //伴随执行的指令
                     
                    <goals>
                        
                        <goal>jar-no-fork</goal>//插件执行的目标对象
                     
                    </goals>
                 
                </execution>
              
            </executions>
          
        </plugin>
       
    </plugins>
</build>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值