bazel 问题集

如何导入Bazel project?
1. import Bazel project .
2. 设置bazel 目录。(如果未设置过 setting位置:idea preference ->other setting)
3. create from scratch.
4. targets 中指定你要导入的目录
例如 //java/…代表workplace目录中的java目录下所有的file.
( directories 相当于设置source root目录, 比如填java)

Wrokflow:
1. To know which targets can be built in your project, Bazel inspects files.
bazel 通过扫描 java_binary 来检查哪些文件需要build. (通常binary 将引用Library, Library中可以通过visibility 属性指定访问权限)
2. (更新中)

导入整个project的依赖?
bazel build java/… …代表所有文件。

引入第三方依赖出现的问题失效?
1. 导入了bazel工程后,在project根目录会生成 bazel-projectname 里面有个external 文件夹,保存着所有用到的依赖。
2. java_binary 和library 中的desp 指的是 src中的java文件要依赖哪些包。这是区分开的。(Spring boot通常在binary中会有一个启动主类, 所以要在binary中添加spring-boot的依赖, 剩下的依赖放在library中 )

bazel编译测试异常。
dao层接口注解不能使用@Repository, 必须使用@Mapper。
语句绑定异常: 包空间不对.
MyBatis 插入空值时,需要指定JdbcType
http://blog.youkuaiyun.com/muyangbin/article/details/50300353

添加一个jar包。
1. 现在总根目录的workplace 中 添加 maven_jar .
1.1 artifact 写groupId+artifactId+version。
1.2 name 自己取, 现在是把“.”“ - ” 等符号改为下划线.
1.3 build 整个project ,生成sha1码,加入到 sha1属性。
例如加入:

org.projectlombok
lombok-maven
1.16.16.0

应为:
maven_jar(
name = “org_projectlombok_lombok_maven”,
artifact = “org.projectlombok:lombok-maven:1.16.16.0”,
sha1 = “e6cb541461c2834bdea3eb920f1884d1eb508b50”,
)

2.在thirty-part/java中引用workplace 的 jar.(加个@和//jar)
例如:
java_library(
name = “org_apache_httpcomponents_httpcore”,
visibility = [“//visibility:public”],
exports = [
“@org_projectlombok_lombok_maven//jar”,
],
)

3.bazel的deps通过 thirty-part/java引用。

如何生成workspace 和 build.
clone bazel 源码 根路径下执行 bazel run //src/tools/generate_workspace – –bazel_project=/Users/fury/flt/demo/bazelGenerate –artifact=org.projectlombok:lombok:1.16.16
可以吧不指定项目名。

lombok 插件未生效
Lombok is a compile-time plugin. You have to use a Bazel java_plugin rule
http://bazel.io/docs/be/java.html#java_plugin

The following works for me:

java_library(
name = “app”,
srcs = glob([“src/main/java/*/.java”]),
deps = [
“javax.servlet.api”,
“:lombok”,
“@slf4j_jar//jar”,
],
)

java_plugin(
name = “lombok_plugin”,
processor_class = “lombok.launch.AnnotationProcessorHider$AnnotationProcessor”,
deps = [“@lombok_jar//jar”],
)

java_library(
name = “lombok”,
exports = [“@lombok_jar//jar”],
exported_plugins = [“:lombok_plugin”],
)
lombok warning :Cannot force a new processing round. Lombok won’t work.
项目根路径下加lombok.config文件,配置 javac生成注解属性为false。

运行时修改jvm配置?
bazel build –jvmopt=”-server -Xms256m” //java/com/example/common/foo:all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值