maven使用

  • Post author:
  • Post category:其他


资源

项目地址: https://maven.apache.org/plugins/index.html



1. 解决的问题

java项目依赖管理

自动化项目构建



2. 典型使用



配置

<!--pom.xml-->
 <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
<name>my-app</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
 
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
 <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
       ... lots of helpful plugins
    </pluginManagement>
  </build>



阶段

在这里插入图片描述

如果进行了deploy或者install,如何撤回?



3.概念与细节



snapshot

The SNAPSHOT value refers to the ‘latest’ code along a development branch, and provides no guarantee the code is stable or unchanging. Conversely, the code in a ‘release’ version (any version value without the suffix SNAPSHOT) is unchanging.

In other words, a SNAPSHOT version is the ‘development’ version before the final ‘release’ version. The SNAPSHOT is “older” than its release.



parent

父级引用

在这里插入图片描述

最终两个app项目中都要引用parent.pom信息,可以方便的在parent中做统一的配置,提高复用性和修改的灵活性。

在这里插入图片描述

例如 spring-boot-starter-parent.pom

  1. 定义了java编译版本为1.8;

  2. 使用UTF-8格式编码;

  3. 继承自spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号;

  4. 执行打包操作的配置;

  5. 自动化的资源过滤;

  6. 自动化的插件配置;

  7. 针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml。

    在这里插入图片描述



maven库

usages 被其他项目引用次数。

在这里插入图片描述



scope

在这里插入图片描述



版权声明:本文为guanglizI原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。