मैंने उन फ़ाइलों के उल्लंघन के लिए तालिकाओं के उल्लंघन की एक तालिका प्रदर्शित करने के लिए उल्लंघनों प्लगइन कोड को डाउनलोड और संशोधित करना समाप्त कर दिया, और फिर उल्लंघन प्लगइन को पुन: संकलित किया (और मैन्युअल रूप से मेरी संशोधित प्लगइन जेनकींस में लोड कर रहा है)।
फ़ाइल नाम भी दिखाई नहीं दे रहा था जैसा कि आप मेरे मूल स्क्रीन शॉट द्वारा देख सकते हैं, "getFileNameAlt" फ़ंक्शन को ठीक से नाम और "फ़ाइल: $ {it.fileNameAlt}" डिस्प्ले नीचे जेली स्क्रिप्ट में मिलता है यह (नीचे स्क्रीनशॉट के लिए लिंक देखें)।
मैं \ उल्लंघन ~ के लिए निम्न जोड़ा \ src \ मुख्य \ जावा \ हडसन \ plugins \ उल्लंघन \ प्रस्तुत करना \ FileModelProxy.java, टेबल प्रस्तुत करना:
public String getFileNameAlt() {
return new File(fileModel.getDisplayName()).getName();
}
public String getSummaryTable() {
StringBuilder gst = new StringBuilder();
int count = 0;
gst.append(" <table class='violations' width='100%'>\n");
gst.append(" <tr>\n");
gst.append(" <td class='violations-header'> # </td>\n");
gst.append(" <td class='violations-header'> Type </td>\n");
gst.append(" <td class='violations-header'> Class</td>\n");
gst.append(" <td class='violations-header'> Message</td>\n");
gst.append(" <td class='violations-header'> Description</td>\n");
gst.append(" </tr>\n");
Set<Violation> violations = fileModel.getLineViolationMap().get(0);
for (Violation v: violations) {
++count;
gst.append(" <tr>\n");
gst.append(" <td class='violations'>");
gst.append(count);
gst.append("</td>\n");
gst.append(" <td class='violations'>");
gst.append(v.getType());
gst.append("</td>\n");
gst.append(" <td class='violations'>");
gst.append(v.getSource());
gst.append("</td>\n");
gst.append(" <td class='violations'>");
gst.append(v.getMessage());
gst.append("</td>\n");
gst.append(" <td class='violations'>");
gst.append(v.getPopupMessage());
gst.append("</td>\n");
gst.append(" </tr>\n");
}
//}
gst.append(" </table>\n");
gst.append("<p><br>\n");
gst.append("<h3>Total Number of violations: \n");
gst.append(count);
gst.append("</h3><p>\n");
return gst.toString();
}
और फिर अद्यतन ~ \ उल्लंघन \ target \ classes \ hudson \ plugins \ violations \ rendering \ FileModelProxy \ index.jelly फ़ाइल को कोड के ऊपर जोड़कर जो स्रोत कोड (जो मेरे लिए काम कर रहा था) के भीतर उल्लंघन प्रदर्शित करेगा, यह नीचे सारांश पंक्ति है :
<j:set
var="iconDir"
value="${rootURL}/plugin/violations/images/16x16"/>
<j:set var="href" value="${it.showLines}"/>
<h1><img src="${image}"/> File: ${it.fileNameAlt}</h1>
<j:out value="${it.summaryTable}"/>
<j:forEach var="t" items="${model.typeMap.entrySet()}">
<table class="pane">
<tbody>
<tr><td class="pane-header" colspan="5"><j:out value="${it.typeLine(t.key)}"/></td></tr>
<j:forEach var="v" items="${t.value}">
<tr>
<td class="pane">
<j:if test="${href}">
<a href="#line${v.line}">${v.line}</a>
</j:if>
<j:if test="${!href}">
${v.line}
</j:if>
</td>
<!--<td class="pane">${v.source}</td> -->
<td class="pane"><j:out value="${it.severityColumn(v)}"/></td>
<td class="pane" width="99%">${v.message}</td>
</tr>
</j:forEach>
</tbody>
</table>
<p></p>
</j:forEach>
अंत में मैंने style.css फ़ाइल को थोड़ा सा खेला, एक तालिका शैली "उल्लंघन" कहा जाता है परिभाषा जोड़ने (~ \ उल्लंघन \ लक्ष्य \ उल्लंघन \ सीएसएस \ style.css):
.violations {
margin-top: 4px;
}
.violations td {
padding: 4px 4px 3px 4px;
}
table.violations {
width: 100%;
border-collapse: collapse;
border: 1px #bbb solid;
}
table.violations > tbody > tr > td:last-child {
border-right: 1px #bbb solid;
}
td.violations {
border: 1px #bbb solid;
padding: 3px 4px 3px 4px;
vertical-align: middle;
}
td.violations-header {
border: 1px #bbb solid;
border-right: none;
border-left: none;
background-color: #f0f0f0;
font-weight: bold;
}
th.violations {
border: 1px #bbb solid;
font-weight: bold;
}
चित्र के नीचे एक फ़ाइल है कि स्रोत कोड नहीं है के लिए जिसके परिणामस्वरूप तालिका से पता चलता। मेरे मामले में फाइल ".cs"
http://i.stack.imgur.com/StChP.jpg
स्रोत
2013-05-16 16:03:27
आप 'स्रोत पथ पैटर्न' में अपनी स्रोत फ़ाइल के लिए पथ प्रदान किया था पर समाप्त नहीं होता? यह आपके प्रोजेक्ट कॉन्फ़िगरेशन में उल्लंघन प्लगइन के लिए सेटिंग्स के अंत में है। – Petrik
उस जानकारी को मूल प्रश्न में शामिल करना चाहिए था। अब मैं जेनकिंस 1.514 को उल्लंघन प्लगइन संस्करण 0.7.15 के साथ चला रहा हूं। –