Skip to content

maven笔记

常规

项目id

<artifactId>    first-demo

版本号

<version>    1.0-RELEASE

组织id

<groupId>    com.bzl

打包方式

<packaging>    jar、war、pom等

作用域

<scope>

多环境

<profiles>

属性

xml
<properties>
	<属性名>值</属性名>
	<profile.active>pro</profile.active>
 </properties>

启用配置

xml
<activation>
    <activeByDefault>true</activeByDefault>
</activation>

管理模块

<modules>
    <module>模块路径</module>
    <module>模块路径</module>
例如:
    <module>../maven_04_dao</module>
</modules>

定义属性

<properties>
 属性格式:<名称>值</名称>
例子
    <spring.version>5.2.10.RELEASE</spring.version>
    <junit.version>4.12</junit.version>
    <mybatis-spring.version>1.3.0</mybatis-spring.version>
    <!--<jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>-->
 </properties>

依赖管理

xml
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
<!--版本号用${}取上面定义的属性的值-->
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

配置多环境

xml
<profiles>
	<profile>
        <id>env_dep</id>
        <properties>
             <jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
        </properties>
        <!--设定是否为默认启动环境-->
          <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
	</profile>
</profiles>

让资源文件解析${}的方法

方法①让资源目录中配置问价可以解析${}

xml
<build>
    <resources>
        <!--设置资源目录,并设置能够解析${}-->
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

方法②配置让资源文件可以解析${}的插件

xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <encoding>UTF-8</encoding>
        <useDefaultDelimiters>true</useDefaultDelimiters>
    </configuration>
 </plugin>

继承

xml
<parent>
    <groupId>com.bzl</groupId>
    <artifactId>项目名称</artifactId>
    <version>1.0-RELEASE</version>
    <!--依赖的工程的pom文件路径-->
    <relativePath>../maven_01_parent/pom.xml</relativePath>
  </parent>

排除依赖

xml
<!--在需要排除的依赖中添加-->
<exclusions>
      <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
      </exclusion>
</exclusions>

可选依赖

在需要隐藏的依赖中添加

xml
<optional>false</optional>

排除不参与测试的内容

xml
<plugins>
    <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.4</version>
        <configuration>
            <skipTests>false</skipTests>
            <!--排除掉不参与测试的内容-->
            <excludes>
             <!--需要排除的测试类的路径-->
                <exclude>**/BookServiceTest.java</exclude>
            </excludes>
        </configuration>
    </plugin>
</plugins>

私服

在官网下载nexus私服

待补充。。。

配置当前工程保存在私服中的具体位置

xml
<distributionManagement>
    <repository>
        <id>itheima-release</id>
        <url>http://localhost:8081/repository/itheima-release/</url>
    </repository>
    <snapshotRepository>
        <id>itheima-snapshot</id>
        <url>http://localhost:8081/repository/itheima-snapshot/</url>
    </snapshotRepository>
</distributionManagement>