当前位置:网站首页>airbase 初步分析

airbase 初步分析

2022-04-23 20:50:00 weixin_40455124

presto是主要基于把airbase作为parent 进行各种check及管理基础dependency的版本。

基本结构

在这里插入图片描述
airbase root 本身有两个项目

  • policy 保存check规则
  • airbase 各种maven plugin 及依赖库版本定义

airbase maven plugin及跳过

pom.xml build部分包括了大量plugin,从代码风格、依赖分析、编译等等,总之想通过maven对代码做什么依赖,都可以来参考airbase,可以通过在子项目的pom.xml properties部分设置以下check为true跳过各种check的执行或者忽略失败。

 <!-- Controls all the checkers run when building the project. -->
        <!-- Can be activated with -Dair.check.skip-all=true on the command line. -->
        <air.check.skip-all>false</air.check.skip-all>
        <!-- Controls the basic checkers run when building the project. -->
        <air.check.skip-basic>${air.check.skip-all}</air.check.skip-basic>
        <!-- Controls the extended checkers run when building the project. -->
        <air.check.skip-extended>${air.check.skip-all}</air.check.skip-extended>

        <!-- basic checks -->
        <air.check.skip-enforcer>${air.check.skip-basic}</air.check.skip-enforcer>
        <air.check.skip-dependency>${air.check.skip-basic}</air.check.skip-dependency>
        <air.check.skip-duplicate-finder>${air.check.skip-basic}</air.check.skip-duplicate-finder>
        <air.check.skip-dependency-scope>${air.check.skip-basic}</air.check.skip-dependency-scope>

        <!-- extended checks -->
        <air.check.skip-spotbugs>${air.check.skip-extended}</air.check.skip-spotbugs>
        <air.check.skip-pmd>${air.check.skip-extended}</air.check.skip-pmd>
        <air.check.skip-license>${air.check.skip-extended}</air.check.skip-license>
        <air.check.skip-jacoco>${air.check.skip-extended}</air.check.skip-jacoco>
        <air.check.skip-modernizer>${air.check.skip-extended}</air.check.skip-modernizer>
        <air.check.skip-checkstyle>${air.check.skip-extended}</air.check.skip-checkstyle>

        <!-- all checks -->
        <air.check.fail-all>true</air.check.fail-all>
        <air.check.fail-basic>${air.check.fail-all}</air.check.fail-basic>
        <air.check.fail-extended>${air.check.fail-all}</air.check.fail-extended>

        <!-- basic checks -->
        <air.check.fail-enforcer>${air.check.fail-basic}</air.check.fail-enforcer>
        <air.check.fail-dependency>${air.check.fail-basic}</air.check.fail-dependency>
        <air.check.fail-duplicate-finder>${air.check.fail-basic}</air.check.fail-duplicate-finder>
        <air.check.fail-dependency-scope>${air.check.fail-basic}</air.check.fail-dependency-scope>

        <!-- extended checks -->
        <air.check.fail-spotbugs>${air.check.fail-extended}</air.check.fail-spotbugs>
        <air.check.fail-pmd>${air.check.fail-extended}</air.check.fail-pmd>
        <air.check.fail-license>${air.check.fail-extended}</air.check.fail-license>
        <air.check.fail-modernizer>${air.check.fail-extended}</air.check.fail-modernizer>
        <air.check.fail-checkstyle>${air.check.fail-basic}</air.check.fail-checkstyle>

dependency 依赖定义

airbase还定义了大量依赖版本,因此升级presto的时候需要考虑所有presto依赖lib也是要相同airbase 版本,以下为com.facebook.airlift 102版本的依赖。

<!-- Dependency versions that should be the same everywhere. -->
        <dep.guice.version>4.2.2</dep.guice.version>
        <dep.guava.version>26.0-jre</dep.guava.version>
        <dep.slf4j.version>1.7.25</dep.slf4j.version>
        <dep.logback.version>1.2.3</dep.logback.version>
        <dep.javax-inject.version>1</dep.javax-inject.version>
        <dep.javax-validation.version>2.0.1.Final</dep.javax-validation.version>
        <dep.javax-servlet.version>3.1.0</dep.javax-servlet.version>
        <dep.bval.version>2.0.0</dep.bval.version>
        <dep.jackson.version>2.10.0</dep.jackson.version>
        <dep.jmxutils.version>1.19</dep.jmxutils.version>
        <dep.cglib.version>3.2.5</dep.cglib.version>
        <dep.joda.version>2.9.9</dep.joda.version>
        <dep.spotbugs-annotations.version>3.1.10</dep.spotbugs-annotations.version>
        <dep.testng.version>6.9.6</dep.testng.version>
        <dep.assertj-core.version>3.5.2</dep.assertj-core.version>
        <dep.assertj-guava.version>3.1.0</dep.assertj-guava.version>
        <dep.assertj-joda-time.version>2.0.0</dep.assertj-joda-time.version>
        <dep.assertj-db.version>1.1.1</dep.assertj-db.version>
        <dep.hamcrest.version>1.3</dep.hamcrest.version>
        <dep.mockito.version>1.9.5</dep.mockito.version>
        <dep.objenesis.version>1.3</dep.objenesis.version>
        <dep.slice.version>0.34</dep.slice.version>
        <dep.jmh.version>1.20</dep.jmh.version>

版权声明
本文为[weixin_40455124]所创,转载请带上原文链接,感谢
https://radishgz.blog.csdn.net/article/details/124336084