bazel 学习一 简单java 项目运行
bazel 是一个很不错的软件构建工具,强大,以下是一个简单java 项目的运行
环境准备
- bazel 安装
结合自己的操作系统,参考官方文档安装,github 上已经提供了多平台构建好的软件包了 - java 项目结构
就是一个标准的maven 项目,暂时没有使用maven 的依赖,只是简单的maven 项目
├── BUILD
├── WORKSPACE
└── src
└── main
└── java
└── Application.java
- 简单说明
WORKSPACE 是构建项目必须存在的,此项目为空,BUILD 定义了构建说明,src 下边的代码是一个通用的可以使用maven 以及gradle 构建的java
项目
Application.java:
public class Application {
public static void main(String[] args) {
System.out.println("this is a demo");
}
}
BUILD
java_binary(
name = "java-app",
srcs = glob(["src/main/java/**/*.java"]),
main_class = "Application",
)
构建
因为bazel 是方便大的单体代码库设计,需要需要制定构建,使用// 代表root 使用:label 代表需要构建的任务
- 构建命令
bazel build //:java-app
- 效果
查看构建依赖
- 命令
bazel query --notool_deps --noimplicit_deps "deps(//:java-app)" --output graph
- 效果
运行
- 命令
bazel-bin/java-app
生成可独立运行的软件包
- 命令
说明后边的_deploy.jar 是一个约定
bazel build //:java-app_deploy.jar
- 效果
- 生成内容的效果
- 运行
命令
java -jar bazel-bin/java-app_deploy.jar
效果
说明
以上是一个最基本的java 项目的构建,后边会学习下依赖以及复杂项目的构建
参考资料
https://www.bazel.build/
https://github.com/bazelbuild/bazel
https://docs.bazel.build/versions/master/tutorial/java.html