使用Java和Maven(JBake)生成靜態網站 - optaplanner

banq發表於2021-07-13

靜態網站生成器將模板和內容檔案轉換為靜態 HTML/JS/CSS 網站。對於我們這樣的專案,這比內容管理系統 (CMS) 有很多優勢:
  • 託管很便宜。GitHub 頁面甚至免費託管靜態網站。
  • 原始檔進入 Git 進行備份和歷史記錄。
  • 原始檔為純文字格式:
    • 更改以拉取請求的形式出現,以進行適當的審查和 CI 驗證。
    • 原始碼在我們的 IDE 中是開放的,這鼓勵將它們與程式碼一起重構。這會減少陳舊的內容。

為什麼是 JBake?
因為我們是 Java 程式設計師。
有幾個很好的靜態網站生成器,比如 Jekyll (Ruby) 和 Hugo (Go)。我們選擇JBake (Java),因為:

  1. 我們的網站現在使用 Maven ( mvn generate-resources)構建。無需安裝任何東西。甚至不是 JBake。 每個人都使用相同版本的 JBake 構建,如pom.xml.而且速度很快:即使mvn clean在我的機器上構建 150 個輸出頁面也只需要 20 秒。
  2. .下面全是Java。編寫條件表示式很簡單。API ( String.substring(), ... ) 很熟悉。日期格式 ( d MMMM yyyy) 和正規表示式的行為符合預期。最重要的是,錯誤訊息很清楚。

8 年來,我用 Awestruct (Ruby) 編寫了這個網站。但我從來沒有花時間好好學習 Ruby,所以每次改變都需要數小時的反覆試驗。我不能只是閱讀錯誤訊息並修復它。這不是魯比的錯。那是因為我從來沒有花幾天時間來真正學習 Ruby。使用 JBake,我可以在很短的時間內修復錯誤:不再需要反覆試驗。
 

什麼是 JBake?
JBake 是一個靜態網站生成器,有很多選項:

  • 使用 Maven 或 Gradle 構建。
    我們選擇Maven,因為我們所有的儲存庫都是使用 Maven 構建的(儘管兩個OptaPlanner Quickstarts也使用 Gradle 構建,因為 OptaPlanner 也支援 Gradle)。
  • 用 Asciidoc、Markdown 或 HTML 編寫內容。
    我們選擇Asciidoc 是因為它比 Markdown更豐富、更可靠。此外,我們所有的文件都是用 Asciidoc 編寫的。
  • 使用 Freemarker、Thymeleaf 或 Groovy 建立模板。
    我們選擇Freemarker 是因為它是一個強大的、經過實戰考驗的模板引擎。


看看原始碼

$ git clone https://github.com/kiegroup/optaplanner-website.git
...
$ cd optaplanner-website
$ mvn clean generate-resources
...
$ firefox target/website/index.html

 

相關文章