maven的基础笔记

一般在企业中maven都有三个仓库:本地仓库,私有仓库,中央仓库。
关系图如下:

这里写图片描述

下载包的顺序分别为:本地仓库、私有仓库、中央仓库。
其中默认的本地仓库在 .m2的repository中,也可以自己设置中央仓库的地址(修改settings.xml文件):

<localRepository>path</localRepository>

创建maven可以使用骨架,例如使用最简单的骨架:

mvn archetype:generate

groupId 、artifactId、version唯一定位一个依赖。

<dependencies>
        <!-- Apache工具组件 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
</dependencies>

scope的使用(默认就是compile):

test      依赖不会被传递,打包的时候不会被打进去 编译也不会用
compile   编译和打包时候都会将依赖存储进去,会用到编译和测试
provided  编译测试的时候有用,但是打包的时候不用加进去,比如servlet的api在tomcat中已经有了,就不用打包进去
runtime   运行时候有依赖,编译的时候不依赖

依赖的传递冲突:

1.如果C项目于A和B且A和B中都有依赖d,A是d的1.0.1版本,B是d的1.0.2版本,在C的pom中A和B那个依赖写前面就依赖谁的
2.如果C项目于A和B且A依赖D,D有依赖d 1.0.1版本,B有依赖d的1.0.2版本,那么C的pom中d的版本就是路径最小的,这里是1.0.2
3.排除掉com.lijie.core里面的log4j版本
<exclusions>
    <groupId>com.lijie.core</groupId>
    <artifactId>user-core</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <type>jar</type>
    <scope>compile</scope>
    <exclusion>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </exclusion>
</exclusions>
4.直接写一层的依赖

依赖的继承与聚合:
1.聚合只需要建立一个文件的就行了,一个地方编译多个文件

<packaging>pom</packaging> 打包方式为pom
<modules>
    <module>lijie-manager-pojo</module>
    <module>lijie-manager-mapper</module>
    <module>lijie-manager-service</module>
    <module>lijie-manager-web</module>
</modules>

2.继承

子pom集成父pom按照如下方式:
<parent>
    <groupId>com.lijie</groupId>
    <artifactId>lijie-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent> 

其中父类中只定义依赖版本,并不依赖,子类中自己去定义依赖:

父pom:
<!-- 只定义依赖版本 并不依赖 -->
<dependencyManagement>
    <dependencies>
        <!-- 时间操作组件 -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${joda-time.version}</version>
        </dependency>
    <dependencies>
</dependencyManagement>

<build>
    <!-- 只定义依赖版本 并不依赖 -->
    <pluginManagement>
        <plugins>
            <!-- 配置Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

子pom:
<dependencies>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
    </dependency>
</dependencies>

<!-- 配置插件 -->
<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <configuration>
            <port>8085</port>
            <path>/</path>
        </configuration>
    </plugin>
</plugins>


父类中也可直接定义,子类都会拥有:
<plugins>
    <!-- 资源文件拷贝插件 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
        <configuration>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    <!-- java编译插件 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
</plugins>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值