我正在做一些關於Teamcity通知電子郵件的定製,我正在關注Customizing Notifications。 Accoring它,數據模型的TeamCity提供是如何獲取TeamCity電子郵件通知中提供的數據模型freemarker
<#-- @ftlvariable name="project" type="jetbrains.buildServer.serverSide.SProject" -->
<#-- @ftlvariable name="buildType" type="jetbrains.buildServer.serverSide.SBuildType" -->
<#-- @ftlvariable name="build" type="jetbrains.buildServer.serverSide.SBuild" -->
<#-- @ftlvariable name="agentName" type="java.lang.String" -->
<#-- @ftlvariable name="buildServer" type="jetbrains.buildServer.serverSide.SBuildServer" -->
<#-- @ftlvariable name="webLinks" type="jetbrains.buildServer.serverSide.WebLinks" -->
<#-- @ftlvariable name="var.buildFailedTestsErrors" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildShortStatusDescription" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildChanges" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildCompilationErrors" type="java.lang.String" -->
<#-- @ftlvariable name="link.editNotificationsLink" type="java.lang.String" -->
<#-- @ftlvariable name="link.buildResultsLink" type="java.lang.String" -->
<#-- @ftlvariable name="link.buildChangesLink" type="java.lang.String" -->
<#-- @ftlvariable name="responsibility" type="jetbrains.buildServer.responsibility.ResponsibilityEntry" -->
<#-- @ftlvariable name="oldResponsibility" type="jetbrains.buildServer.responsibility.ResponsibilityEntry" -->
而且它說,
的代碼可以在IntelliJ IDEA的使用與 完成
我編輯的模板沒有IntelliJ IDEA,因此我不知道有沒有其他方法可以檢查每個數據模型中的內容?
對於您的信息,我已經研究瞭如何在Getting Started下創建數據模型和模板。如果導出到模板的對象符合JavaBean規範,我可以通過變量名稱獲取屬性。例如,對於類像下面,
/**
* Product bean; note that it must be a public class!
*/
public class Product {
private String url;
private String name;
// As per the JavaBeans spec., this defines the "url" bean property
// It must be public!
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
// As per the JavaBean spec., this defines the "name" bean property
// It must be public!
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我能得到類似下面的數據模型的屬性,
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
但是,爲什麼在TeamCity的通知模板build.name
可以工作?我還沒有看到沒有getName
方法或http://javadoc.jetbrains.net/teamcity/openapi/8.1/jetbrains/buildServer/serverSide/SBuildType.html
感謝您的回覆。我在這裏得到了什麼。但是,我可以在SBuiltType中看到getExtendedName(),爲什麼build.extendedName在模板中沒有返回任何內容。 – Gearon
我的第一個想法是'getExtendedName()'返回'null',但它不應該根據javadoc。 'build.getExtendedName ??''true'(也就是說,我們是否有這種方法)? – ddekany
嗯,不知道爲什麼,但這次成功獲得了build.extendedName的價值。謝謝你的幫助。 – Gearon