NullAway项目指南

NullAway项目指南

NullAwayA tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead项目地址:https://gitcode.com/gh_mirrors/nu/NullAway

目录结构及介绍

当你克隆或者下载NullAway项目之后, 你的文件树应该看起来类似于下面的样子:

NullAway/
│
├── .gitignore
├── NOTICE
├── README.md
├── pom.xml
├── settings.gradle.kts
├── scripts/
│   ├── download_metadata.sh
│   └── generate_intellij_project_files.sh
│
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── uber/
│   │   │           └── nullaway/
│   │   │               └── //... 源代码位置
│   │   └── resources/
│   │       └── //... 资源文件
│   └── test/
│       ├── java/
│       │   └── com/
│       │       └── uber/
│       │           └── nullaway/
│       │               └── //... 测试代码位置
│       └── resources/
│           └── //... 测试资源文件
│
└── buildSrc/
    └── settings.gradle.kts
    └── build.gradle.kts
    └── src/
        └── main/
            └── kotlin/
                └── com/
                    └── example/
                        └── BuildSrcExample.kt

src/main/java/: 包含所有主要的源代码。 src/test/java/: 包含所有的单元测试代码。 scripts/: 存储脚本和其他自动化任务。 buildSrc/: 建立Gradle构建逻辑。

项目的启动文件介绍

项目的实际启动点取决于你如何使用NullAway。一般来说,启动点包括:

  • pom.xml: Maven的主要配置文件。如果你使用的是Maven来管理你的项目依赖关系,你会在这里找到所有的配置选项。
  • buildSrc/build.gradle.kts: 当使用Gradle作为构建系统时,这个文件包含了关于如何构建NullAway的详细指令。这是用来初始化和管理NullAway构建过程的起始文件。

具体来说,在 buildSrc/build.gradle.kts 文件中,你可以设置各种构建选项,例如编译环境、依赖库等。

项目的配置文件介绍

通常情况下,NullAway不直接提供自定义配置文件供用户修改,而是通过以下几种方式实现定制化:

  • build.gradle*build.gradle 文件: 这是在Gradle项目中最常使用的配置文件。在此文件中,你需要加入特定的Plugin ID来启用NullAway插件,并可以进一步调整诸如忽略某些文件或类等的参数。

例如,在项目的 build.gradle* 中添加:

plugins {
    id 'com.google.errorprone' version '2.3.4'
}
dependencies {
    compileOnly 'com.google.errorprone:error_prone_annotations:2.3.4'
}

// 应用NullAway插件
apply plugin: 'net.ltgt.nullaway'

nullAway {
    // 设置annotation处理器级别
    processorLevel = 'FAIL_BUILD'
    
    // 添加默认的可为null类型标注
    // 默认情况下,没有注解的类型被视为nonnull
    annotationWhitelist += ['com.example.annotations.Nullable']
    
    // 添加一组需要忽略的类/包
    ignoreWarningsOnClasses = [
        'android.*', 
        'javax.*',
        'org.json.*'
    ]
}

如上所述, NullAway需要你在代码中指定nullability信息,这通常是通过在适当的位置使用@NonNull@Nullable注解来完成的。

在上述例子中, 我们已经让NullAway知道某个特殊的@Nullable注解的存在并将其纳入考虑范围。

对于Maven项目, 你同样也需要在pom.xml文件内加入依赖库的信息:

<dependencies>
    <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_core</artifactId>
        <version>${errorprone.version}</version>
        <!--... -->
    </dependency>
</dependencies>

<!-- NullAway plugin configuration for Maven -->
<plugin>
    <groupId>net.ltgt</groupId>
    <artifactId>check-error-prone</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

以上就是NullAway的基本配置方法。通过这种方式,NullAway将能够识别并分析代码中的可空性注解,并报告潜在的空指针异常。

以上就是NullAway项目各组成部分的基础介绍及其配置示例。希望这份指南能帮助你更好地理解和使用该项目。如果你在使用过程中遇到任何问题,建议查阅官方文档或访问NullAway的GitHub仓库获取更多的资料和支持。

NullAwayA tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead项目地址:https://gitcode.com/gh_mirrors/nu/NullAway

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋或依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值