領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多SpringSource Tool Suite (STS) 提供了“新建 Spring 模板專案”嚮導。使用者可以使用此嚮導檢視多個專案模板,選擇一個,然後讓嚮導根據該模板描述建立一個完整的專案。雖然這提供了一種建立新專案的便捷方式,但您可能希望為您的團隊或組織定義自己的自定義專案模板。接下來我們將演示如何做到這一點。
因此,第一步是建立一個新的空外掛專案。您不需要 Java 程式碼,所以不要將其建立為 Java 專案。只需建立一個新的外掛專案,在嚮導中取消選擇 Java 選項即可。
現在在該外掛專案中定義擴充套件。透過在開啟清單編輯器時(雙擊 META-INF/MANIFEST.MF)選擇“擴充套件”選項卡來建立一個 plugin.xml。您可以透過修改 plugin.xml 來定義擴充套件,使其看起來像這樣:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="com.springsource.sts.core.resources">
<url
id="content.descriptors"
value="%content.descriptor.urls">
</url>
</extension>
</plugin>
這定義了對 STS 擴充套件點 com.springsource.sts.core.resources 的貢獻,並使用您的新值覆蓋 content.descriptors ID 的預設值。這個新值應包含您希望在 STS 嚮導中看到的所有模板的所有 URL。在這種情況下,我們不會直接在此處放置 URL,而是將其外部化到一個單獨的屬性檔案中。*這是必需的*,用於多個 URL,您將看到。
下一步是建立一個名為 bundle.properties 的屬性檔案,將其放在外掛的 OSGI-INF/I10n/ 目錄中。此屬性檔案應如下所示:
content.descriptor.urls = http://dist.springsource.com/release...riptors.xml\n\
file:///Users/mlippert/template-contribution/descriptor.xml
正如您所見,我在這裡放置了原始 STS 值,以保留 STS 的預設模板,並添加了我自己的(在此情況下是本地的)descriptor.xml 檔案的 URL。因此,如果您只想使用本地檔案,可以繼續採用這種方法。如果您想將新模板分發給整個公司,讓 descriptor.xml 檔案作為 HTTP 資源提供將很有意義。請注意,URL 由 \n 分隔。
現在,您已經完成了 STS 新外掛的大部分工作。您可以匯出該外掛,然後將生成的 JAR 檔案放入 STS 安裝的 dropins 目錄中。請注意,build.properties 已勾選 META-INF、OSGI-INF 和 plugin.xml 以包含在二進位制構建中。
(我附上了此示例的外掛專案:template-contribution-plugin.zip)
descriptor.xml 檔案
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<descriptors>
<descriptor id="org.test.mynewtemplate" kind="template" local="false" name="Mein neues Template" size="998877" url="file:///Users/mlippert/template-contribution/test-template-1.0.0.zip" version="1.0.0">
<description>My brand new template contribution for this hacky stuff etc.</description>
</descriptor>
</descriptors>
正如您所見,我在此處放置了一些隨機的無意義示例,您應該將其替換為您自己的 ID。請選擇:
org.test.mynewtemplate)side 屬性中設定 ZIP 檔案的正確大小descriptor.xml 檔案中引用的 ZIP 檔案。此 ZIP 檔案應在其根目錄中包含三個檔案:
- template.xml
- template.zip
- wizard.json
讓我們來看第一個,template.xml:
<template>
<descriptor id="org.test.mynewtemplate"
name="Mein neues Template"
kind="template"
version="1.0.0">
<description>My brand new template contribution for this hacky stuff</description>
</descriptor>
<project path="template.zip"/>
<json path="wizard.json"/>
</template>
它包含與 descriptor.xml 相同的模板 id、name 和 description,以及相同的 version 和 template 型別。此外,它還包含對 template.zip 檔案和 wizard.json 檔案的引用。因此,這是您定義這兩個其他檔案的地方。
wizard.json 檔案包含用於建立和處理此特定模板的嚮導 UI 的描述。在我的示例中,wizard.json 檔案如下所示:
{
"info" : {
"elements" : {
"element" : [
{
"name" : "topLevelPackage",
"description" : "Please specify the top-level package e.g. com.mycompany.myapp",
"type" : "java.lang.String",
"page" : 0,
"required" : true,
"pattern" : "\\w+\\.\\w+(\\.\\w+)+",
"replaceKind" : "topLevelPackage"
}
]
},
"topLevelPackage" : "mytld.mycompany.myapp.mysubsystem",
"projectName" : "projectName",
"pages" : {
"page" : [
{
"order" : 0,
"description" : "Project Settings"
}
]
}
}
}
我在這裡不深入細節,但這基本上是嚮導 UI 的資訊。它包含使用者可以在嚮導中輸入的元素,這些元素用於建立實際專案(例如,頂層包)。
最後一部分是使用者選擇您的模板時希望例項化的實際專案。您所要做的就是自己建立專案,並按照 wizard.json 中定義的名稱來命名頂層包(在本例中為 mytld.mycompany.myapp.mysubsystem)。在我附加的示例中,模板專案位於名為 template 的根目錄中,包含:
就這樣!
請注意:一旦您將新模板的 zip 檔案下載到 STS(這是在您從列表中選擇並按 Enter 鍵後自動完成的),STS 將在下次重用下載的檔案。因此,如果您更改模板,請務必為其設定一個新版本號。否則,STS 將不會採用您更改後的模板。