天天看點

搭建自己的Spring Initializr伺服器搭建自己的Spring Initializr伺服器

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/51713174

搭建自己的Spring Initializr伺服器

作者:chszs,未經部落客允許不得轉載。經許可的轉載需注明作者和部落格首頁: http://blog.csdn.net/chszs

要開始一個基于Spring或SpringBoot的新項目,可以使用線上工具:

https://start.spring.io/

使用它,可以很容易地建立基于Maven或Gradle的項目模闆,并通過界面上的多選框定義項目所有所需的依賴。這個線上工具實際上是一個SpringBoot應用程式,可以在本地自己搭建一個這樣的工具。這麼做有很多優點:可以避免因為無法通路spring.io站點就無法建立SpringBoot項目的尴尬;可以限制依賴的數量;可以強制使用Gradle作為項目建構工具;可以設定預設的項目名、預設的包名等等。

要開始這麼做的話,首先通路Spring Initializr項目的GitHub網站:

https://github.com/spring-io/initializr

此項目的源碼采用了Maven依賴,故本地需要有Maven環境。要運作這個項目,最簡單的方法是使用Spring CLI工具,最友善的是使用SDKMAN工具,安裝它:

http://sdkman.io/index.html

然後執行:

$ sdk install springboot
           

接着建立一個新目錄,進入目錄,建立initializr.groovy檔案:

package app
@Grab('io.spring.initalizr:initializr-web:1.0.0.BUILD-SNAPSHOT')
@Grab('spring-boot-starter-web')
class InitializerService {}
           

接下來,需要為Spring Initializr應用定義配置檔案。可以複制application.yml檔案來用,此檔案在剛才的GitHub網站的initializr-service項目中,檔案改名為initializr.groovy。該檔案包含了大量的資訊。配置檔案的詳細解釋可以參考:

https://github.com/spring-io/initializr/wiki/Configuration-format

其實配置項是很直接的,意思一目了然。比如可以打開這個檔案,從dependencies移除依賴,或設定groupId的預設值。如果想明确項目的建構工具隻使用Gradle,那麼可以在types節移除Maven的引用。當然,還需在languages節設定預設的語言為Groovy。

...
artifactId:
    value: sample
groupId:
    value: com.mrhaki
version:
    value: 1.0.0.DEVELOPMENT
name:
    value: Sample
description:
    value: Sample Project
packageName:
    value: com.mrhaki.demo
...
types:
    - name: Gradle Project
    id: gradle-project
    description: Generate a Gradle based project archive
    sts-id: gradle.zip
    tags:
        build: gradle
        format: project
    default: false
    action: /starter.zip
    - name: Gradle Config
    id: gradle-build
    description: Generate a Gradle build file
    sts-id: build.gradle
    tags:
        build: gradle
        format: build
    default: true
    action: /build.gradle
...
javaVersions:
    - id: 1.8
    default: true
languages:
    - name: Java
    id: java
    default: false
    - name: Groovy
    id: groovy
    default: true
...
           

現在可以啟動Spring Initializr伺服器了:

$ spring run initializr.groovy
...
           

還可以覆寫此應用的靜态資源和模闆。比如添加一個新的spring.css檔案到static/css目錄,并放一個home.html檔案到templates目錄。

下面的截圖顯示了一些自定義的樣式:

還可以使用此服務從IntelliJ IDEA建立項目,當建立新項目并從清單框選擇Spring Initializr時,可以添加Spring Initializr的伺服器位址:

然後就而已看到項目的預設值:

最後可以選擇依賴項:

一切都很友善,不是嗎?

寫在最後

我建立了一個微信個人公衆号,部落格的資訊也會在公衆号同步更新。關注随意。