#!/bin/bash
#执行指令后,会显示该指令及所下的参数,方便debug
set -x
#cd 到utils 路径,然后执行这个路径下的两个脚本文件后,通过cd - 返回到当前目录
cd ../../utils
. ./sys_info.sh
. ./sh-test-lib
cd -
#判断当前发行版的版本,看这里目前只支持centos和fedora
case "${distro}" in
centos|fedora)
#这里-O 表示下载后保存的name
sudo wget -O /etc/yum.repos.d/estuary.repo https://raw.githubusercontent.com/open-estuary/distro-repo/master/estuaryftp.repo
#修改权限
sudo chmod +r /etc/yum.repos.d/estuary.repo
#导入key
sudo rpm --import ftp://repoftp:repopushez7411@117.78.41.188/releases/ESTUARY-GPG-KEY
#清理yum的cache
yum clean dbcache
print_info $? setup-estuary-repository
#安装这三个package,并判断是否安装成功
pkgs="gcc java-devel bazel"
install_deps "${pkgs}"
print_info $? install-bazel
#如果不是这两个发行版就打印错误信息
;;
*)
error_msg "Unsupported distribution!"
esac
#字符串赋值
dir="my-project"
mkdir $dir
cd $dir
#新建目录
mkdir -p src/main/java/com/example
#新建文件
touch WORKSPACE
print_info $? setup-WORKSPACE
#通过cat 生成新的ProjectRunner.java
cat > src/main/java/com/example/ProjectRunner.java <<EOF
package com.example;
public class ProjectRunner {
public static void main(String args[]) {
Greeting.sayHi();
}
}
EOF
#通过cat 生成新的Greeting.java
cat > src/main/java/com/example/Greeting.java <<EOF
package com.example;
public class Greeting {
public static void sayHi() {
System.out.println("Hi!");
}
}
EOF
print_info $? setup-simple-java
#生成BUILD文件
cat > BUILD <<EOF
java_binary(
name = "my-runner",
srcs = glob(["**/*.java"]),
main_class = "com.example.ProjectRunner",
)
EOF
print_info $? setup-simple-BUILD
#执行bazel 命令,后面的参数是形参
bazel build //:my-runner
print_info $? build-simple-java
#执行命令
bazel-bin/my-runner
print_info $? run-simple-java
#生成BUILD文件
cat > BUILD <<EOF
java_binary(
name = "my-other-runner",
srcs = ["src/main/java/com/example/ProjectRunner.java"],
main_class = "com.example.ProjectRunner",
deps = [":greeter"],
)
java_library(
name = "greeter",
srcs = ["src/main/java/com/example/Greeting.java"],
)
EOF
print_info $? setup-related-BUILD
bazel run //:my-other-runner
print_info $? run-related-java
mkdir -p src/main/java/com/example/cmdline
cat > src/main/java/com/example/cmdline/Runner.java <<EOF
package com.example.cmdline;
import com.example.Greeting;
public class Runner {
public static void main(String args[]) {
Greeting.sayHi();
}
}
EOF
print_info $? setup-package-java
cat > src/main/java/com/example/cmdline/BUILD <<EOF
java_binary(
name = "runner",
srcs = ["Runner.java"],
main_class = "com.example.cmdline.Runner",
deps = ["//:greeter"]
)
EOF
print_info $? setup-package-BUILD
#执行bazel build 命令
bazel build //src/main/java/com/example/cmdline:runner
#判断命令是否执行成功
if [ $? ];then
print_info 0 run-package-ERROR
else
print_info 1 run-package-ERROR
fi
#sed -i '/example/Greeting.java/a\ visibility = ["//src/main/java/com/example/cmdline:__pkg__"],' BUILD
cat > ./BUILD <<EOF
java_binary(
name = "my-other-runner",
srcs = ["src/main/java/com/example/ProjectRunner.java"],
main_class = "com.example.ProjectRunner",
deps = [":greeter"],
)
java_library(
name = "greeter",
srcs = ["src/main/java/com/example/Greeting.java"],
visibility = ["//src/main/java/com/example/cmdline:__pkg__"],
)
EOF
print_info $? resetup-package-BUILD
bazel run //src/main/java/com/example/cmdline:runner
print_info $? rerun-package-java
#调用jar 命令,并判断执行的结果
jar tf bazel-bin/src/main/java/com/example/cmdline/runner.jar
print_info $? look-package-runner
bazel build //src/main/java/com/example/cmdline:runner_deploy.jar
print_info $? build-allpackage-runner
test-definitions/blob/master/auto-test/bazel/bazel.sh
最新推荐文章于 2022-05-20 15:42:56 发布