test-definitions/blob/master/auto-test/bazel/bazel.sh

#!/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值