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仓库获取更多的资料和支持。