Maven基础命令以及聚合,继承详解

因为没搭建过用于生产的框架,对于pom中的各个节点也都只是一知半解,更从来没有系统的学习过maven,为求上进,花时间系统学习了一下

基础常用命令

1.mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2.mvn test 测试,并生成测试报告
3.mvn clean 将以前编译得到的旧的 class 字节码文件删除
4.mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5.mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用

scope范围

1.compile      默认依赖范围,编译的时候和打包的时候把此依赖加入
2.provided    编译和测试的加入,打包的时候不加入.例如:serveltapi在tomcat中有存在,打包的时候则不需要
3.runtime     编译的时候不加入,运行的时候加入依赖
4.system      和provide相同,不过被依赖项不会从maven仓库抓,而是从本地系统文件拿,一定要配合systemPath使用
5.test          只有在测试的时候加入,对应编译时对应src/test中代码时也才会加入
system使用
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.5</version>
    <scope>system</scope>
    <systemPath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jar</systemPath>
</dependency>

传递和排除

依赖的传递,A->C  基于compile这个范围进行传递
当A依赖B和C时,B和C拥有同一依赖的不同版本,A的依赖根据
B和C在pom中的顺序,如果B在C之前,确想要使用C的依赖,
可以在B中进行依赖排除(exclusions)


<dependency>
            <groupId>com.hand</groupId>
            <artifactId>hap</artifactId>
            <type>war</type>
            <version>${hap.version}</version>
            <exclusions>
            	<exclusion>
            	<artifactId>org.mybaties</artifactId>
            	<groupId>mybaties</groupId>
            	</exclusion>
            </exclusions>
  </dependency>

    聚合

          当2个以上的模块项目互相依赖时,我们在进行编译等操作时,需要进行各个项目的编译,
    这时我们就可以使用聚合,一次编译多个项目模块

新建简单pom项目
注意:选择packing为pom 
 <packaging>pom</packaging>
然后导入模块
 <modules>
    <module>core</module>
    <module>core-db</module>
  </modules>

继承

我们的各个项目模块中除依赖外有多个相同的节点,这时可以抽取相同节点至一个新的简单pom,
其他模块进行继承便可以在聚合时新建的简单pom中加入抽取出的各个模块相同重复
各个模块进行继承(注意:packing为pom)
<parent>
        <artifactId>rentParent</artifactId>
        <groupId>rent</groupId>
        <version>1.0-SNAPSHOT</version>
	<relativePath>../pom.xml</relativePath><!-- 相对路径pom文件 -->
    </parent>
依赖的继承

在parent项目中使用dependencyManagement依赖管理,添加各种相同依赖

<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.10</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

在其他模块中便可以省略版本

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
</dependencies>

一般来说继承和聚合都可以写在一个parent项目中,然后其他模块项目进行引用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值