# maven2bazel
**Repository Path**: yuyunli2/maven2bazel
## Basic Information
- **Project Name**: maven2bazel
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-10-31
- **Last Updated**: 2022-10-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Idea的插件maven2bazel
**一、maven项目转为bazel项目的IDEA插件,搜索Maven2Bazel即可安装**
idea插件地址:https://plugins.jetbrains.com/plugin/17925-maven2bazel
1.支持SpringBoot、SpringMVC转为bazel结构,支持war包转化
2.支持单模块、多模块项目转化
3.支持lombok插件编译
4.支持protobuf序列化
安装后可以再IDEA的Tools->Maven2Bazel->Settings
可打开Settings进行基本设置,基本设置包括:
1.MavenHome: 本地的MavenHome目录,例如 D:\software\apache-maven-3.6.3;
2.LocalRepository: 本地的Maven仓库目录,例如:E:\repository ;
3.Bazel_JDK_Home: Bazel项目运行的JDK本地目录:/usr/local/jdk1.8.0_261;
4.Bazel_Maven_Cache: Bazel项目的Maven本地依赖的目录:/data/bazel_maven_cache/repository;
5.RemoteRepositories: 远程Maven私服地址,若私服需要账号密码访问,必须配置账号密码;url与ID是不能重复的;
6.JDK_Level: 设置jdk的版本,jdk6、jdk7、jdk8...jdk17,默认为jdk8(可手动设置);
7.Encoding: 设置编码格式,默认为UTF-8(可手动设置);
配置完成后,可点击 Tools->Maven2Bazel->"Maven->Bazel" 后台会自动转化为bazel项目,
转化可能需要点儿时间,请耐心等待。
出现弹框:maven to bazel success! 即已完成maven转为bazel的项目结构
**二、在jenkins中集成bazel**
1.首先参考bazel的官网,再jenkins所在的电脑中安装好bazel,并配置环境变量(推荐在linux或macOS系统中安装)
2.安装后再 "执行shell" 中输入构建命令
bazel build 项目名
若为多个子项目则换行输入多个命令,例如:
bazel build common-core
bazel build springboot-app
bazel build springwebsocket-app
在构建时若出现不支持中文的文件名时,此时需设置服务器支持中文语言包,然后在build前增加命令 export LANG=en_US.utf8 即:
export LANG=en_US.utf8
bazel build common-core
en_US.utf8可能是系统支持的编码集,也可能为 zh_CN.utf8或其他的编码,
若是linux系统可执行命令 "locale -a" 查看需要的编码集
3.使用SSH Publishers部署至目标服务器
a)Source files 为:bazel-bin/子项目目录/xx.jar ,例如: bazel-bin/springboot-app/springboot-app.jar
b) Remove prefix为 bazel-bin/子项目目录/,例如:bazel-bin/springboot-app/
感兴趣或有任何问题,欢迎大家加入QQ群进行交流:495637291
参考文档:
1.Bazel: https://docs.bazel.build/versions/4.2.1/bazel-overview.html
2.rules_jvm_external:https://github.com/bazelbuild/rules_jvm_external