Maven重要知识点梳理

1.生命周期

清理clean:将以前编译得到的旧文件class字节码文件删除
编译compile:将java源程序编译成class字节码文件
测试test:自动测试,自动调用junit程序
报告report:测试程序执行的结果
打包package:动态Web工程打War包,java工程打jar包
安装install:将项目打包并且发布到本地仓库,供其他项目使用
部署deploy:将最终的包复制到远程的仓库,以让其它开发人员与项目共享

注意:生命周期分为三套,clean单独一个生命周期,所以执行 mvn -install 并不会执行clean

2.scope—依赖的范围

1、compile,默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。
2、provided,只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 。如servlet.jar。
3、runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
4、test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
5、system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

3.高级特效

1.传递性

WebMavenDemo项目依赖JavaMavenService1 JavaMavenService1项目依赖JavaMavenService2

pom.xml文件配置好依赖关系后,必须首先mvn install后,依赖的jar包才能使用。

WebMavenDemoのpom.xmlファイルをコンパイルする場合は、JavaMavenService1をインストールする必要があり、JavaMavenService
のpom.xmlファイルをコンパイルする場合は、インストールする必要があります。

注:コンパイルされていない依存関係を渡すことはできません

4.ビルド

1.構成プロパティ

<build>
  <!-- 项目的名字 -->
  <finalName>WebMavenDemo</finalName>
  <!-- 描述项目中资源的位置 -->
  <resources>
    <!-- 自定义资源1 -->
    <resource>
      <!-- 资源目录 -->
      <directory>src/main/java</directory>
      <!-- 包括哪些文件参与打包 -->
      <includes>
        <include>**/*.xml</include>
      </includes>
      <!-- 排除哪些文件不参与打包 -->
      <excludes>
        <exclude>**/*.txt</exclude>
          <exclude>**/*.doc</exclude>
      </excludes>
    </resource>
  </resources>
  <!-- 设置构建时候的插件 -->
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.1</version>
      <configuration>
        <!-- 源代码编译版本 -->
        <source>1.8</source>
        <!-- 目标平台编译版本 -->
        <target>1.8</target>
      </configuration>
    </plugin>
    <!-- 资源插件(资源的插件) -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.1</version>
      <executions>
        <execution>
          <phase>compile</phase>
        </execution>
      </executions>
      <configuration>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    <!-- war插件(将项目打成war包) -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.1</version>
      <configuration>
        <!-- war包名字 -->
        <warName>WebMavenDemo1</warName>
      </configuration>
    </plugin>
  </plugins>
</build>

2.Flatten Mavenプラグイン

シナリオ:mavenを使用して開発されたモジュール式アプリケーションは、さまざまなオープンソースライブラリなど、他のユーザーが使用できるようにリリースできます。使用すると、継承されるか、依存関係の形式で導入されます。ただし、さまざまなライブラリのpom.xmlファイルを見ると、それらは通常比較的単純であり、一般的に必要な依存関係情報しかありません。通常、開発者として、ユーザーもこの情報を必要とすると考えています。ただし、実際の開発では、対応するモジュールのpomはより複雑になる可能性があります。さまざまなプラグインを使用したり、さまざまな依存関係を参照したり、コンポーネント間の継承関係を作成したり、さまざまなパラメーターに応じてさまざまなブランチを作成したり、つまりプロファイルメカニズムなどを使用したりすることができますデプロイ時に、対応するモジュールのpomに関するすべての情報が保持され、変更されません。モジュールのリリースに支障をきたすため、直接pom.xmlをリリースすると、ユーザーに支障をきたす可能性があり、問題がある場合は問題点の特定が困難になります。

機能:pom.xmlファイルの圧縮バージョンを生成します

構築に関連する
要素は削除されます。開発に関連する要素はデフォルトで削除されます。
コンポーネントのユーザーに必要な一部の情報のみ含まれます。
変数が解析されます。
親関係が解析され、圧縮および削除されます。
構築中の実際の使用プロファイルは必要に応じて評価および処理
され、JDKまたはOSによって駆動されるプロファイルが保持され、必要に応じて依存関係を動的に制御できます。

おすすめ

転載: blog.csdn.net/weixin_40791454/article/details/108507529