zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    动态规划(最长公共序列,最长上升序列)
    滴滴笔试--算术转移(20190827)
    线段树和树状数组
    pair和list学习
    数据结构--树(建立、遍历)
    tmux常用命令与快捷键
    机器学习实战-逻辑回归
    字符流中第一个重复的字符
    机器学习实战-朴素贝叶斯
    Python第三方库
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/12249593.html
Copyright © 2011-2022 走看看