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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM