maven extension 简单说明

发布时间 2024-01-10 17:18:15作者: 荣锋亮

按照说明maven 是3.3.1 发布了maven extension,功能很强大,以前没太注意,在看dremio 关于telemetry 集成的时候发现是一个很强大的
功能,尤其在我们需要提高maven 构建性能的时候,以下是一个简单的说明

配置说明

一般包含了核心扩展以及构建扩展

  • 核心扩展
    jar 在${maven.home}/lib/ext
    通过cli mvn -Dmaven.ext.class.path=extenson.jar
    通过.mvn/extensions.xml
    extensions.xml模式的
 
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
    <extension>
      <groupId>fr.jcgay.maven</groupId>
      <artifactId>maven-profiler</artifactId>
      <version>3.2</version>
    </extension>
    <extension>
      <groupId>fr.jcgay.maven</groupId>
      <artifactId>maven-notifier</artifactId>
      <version>2.1.2</version>
    </extension>
    <extension>
      <!-- Disabled by default.
           Check https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/maven-extension for configuration.
      -->
      <groupId>io.opentelemetry.contrib</groupId>
      <artifactId>opentelemetry-maven-extension</artifactId>
      <!-- https://github.com/open-telemetry/opentelemetry-java-contrib/releases -->
      <version>1.31.0-alpha</version>
    </extension>
</extensions>
  • 构建配置
<project>
  ...
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ftp</artifactId>
         <version>2.10</version>
      </extension>
    </extensions>
  </build>
  ...
</project>

说明

maven extension 是一个很不错的扩展功能,可以进行方便的maven 构建扩展,实现一些有意思的玩法

参考资料

https://maven.apache.org/guides/mini/guide-using-extensions.html
https://maven.apache.org/extensions/index.html
http://takari.io/2015/03/19/core-extensions.html
https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/maven-extension