Skończyło się pobieranie i modyfikowanie kodu wtyczki naruszenia, aby wyświetlić tabelę naruszeń dla plików, które nie mają kodu źródłowego, a następnie rekompilacji wtyczki naruszenie (i ręcznie ładowanie zmodyfikowanej wtyczki do Jenkins).
Nazwa pliku również się nie pojawiła, jak widać na moim oryginalnym zrzucie ekranowym, funkcja "getFileNameAlt" poprawnie pobiera nazwę, a wiersz "Plik: $ {it.fileNameAlt}" w poniższym obrazie galaretki wyświetla (patrz link do zrzucie ekranu poniżej).
I dodaje następujące do ~ \ łamanie \ src \ main \ java \ Hudson \ plugins \ łamanie \ renderowanie \ FileModelProxy.java, aby uczynić tabelę:
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();
}
A potem zaktualizował ~ \ naruszeń \ target \ classes \ hudson \ plugins \ violations \ render \ FileModelProxy \ index.jelly plik dodając go tuż nad kodem, który wyświetlałby naruszenia w kodzie źródłowym (który działał dla mnie), jest to "" linia podsumowania poniżej :
<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>
Wreszcie grałem trochę z plikiem style.css, dodanie definicji stylu tabeli „łamanie” (~ \ łamanie \ target \ łamanie \ 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;
}
Poniższy rysunek przedstawia tabela wynikowy dla pliku, który nie ma kodu źródłowego. W moim przypadku plik nie kończy się w „.cs”
http://i.stack.imgur.com/StChP.jpg
Czy podać ścieżkę do plików źródłowych w «źródło Path wzorzec»? Jest na końcu ustawień wtyczki Naruszenia w konfiguracji projektu. – Petrik
Powinien zawierać te informacje w pierwotnym pytaniu. Używam teraz wersji Jenkins 1.514 z wtyczką Violations w wersji 0.7.15. –