diff --git a/plugin/pom.xml b/plugin/pom.xml
index 0326cc210..ea8259975 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -32,7 +32,7 @@
1.17.6
1.83
- 0.19.0
+ 0.19.1
2.0.0
1.29.0-3
1.7.8
diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java
index ec9ac0a85..6fc7ab39c 100644
--- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java
+++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -9,6 +10,7 @@
import org.apache.commons.lang3.StringUtils;
+import edu.hm.hafner.coverage.Metric;
import edu.hm.hafner.coverage.ModuleNode;
import edu.hm.hafner.coverage.Node;
import edu.hm.hafner.util.FilteredLog;
@@ -392,8 +394,17 @@ private void perform(final Run, ?> run, final FilePath workspace, final TaskLi
if (!results.isEmpty()) {
CoverageReporter reporter = new CoverageReporter();
var rootNode = Node.merge(results);
+ // TODO: move code to coverage model
+ var sources = rootNode.getAll(Metric.MODULE)
+ .stream()
+ .filter(ModuleNode.class::isInstance)
+ .map(ModuleNode.class::cast)
+ .map(ModuleNode::getSources)
+ .flatMap(Collection::stream)
+ .collect(Collectors.toSet());
+ sources.addAll(getSourceDirectoriesPaths());
var action = reporter.publishAction(getActualId(), getName(), getIcon(), rootNode, run,
- workspace, taskListener, getQualityGates(), getScm(), getSourceDirectoriesPaths(),
+ workspace, taskListener, getQualityGates(), getScm(), sources,
getSourceCodeEncoding(), getSourceCodeRetention(), resultHandler);
if (!skipPublishingChecks) {
var checksPublisher = new CoverageChecksPublisher(action, rootNode, getChecksName(), getChecksAnnotationScope());