Я создаю тэг maven <reporting>
report <reporting>
используя класс org.apache.maven.model.Reporting. Я пытаюсь построить тег как
Ожидаемый тег вывода
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>
Код, который я использую для достижения того же,
ReportPlugin reportPlugin = new ReportPlugin();
reportPlugin.setGroupId("org.codehaus.mojo");
reportPlugin.setArtifactId("cobertura-maven-plugin");
Reporting reporting = new Reporting();
reporting.addPlugin(reportPlugin);
Но выходной тег, который я получаю,
<reporting>
<excludeDefaults>false</excludeDefaults>
<plugins>
<artifactId>cobertura-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
</plugins>
</reporting>
Я не вижу plugin
тег, например < plugins><plugin>......</plugin></plugins>
но я получаю только <plugins>......</plugins>
на выходе я показали выше. Как я могу это исправить?
Я попытался посмотреть, получаю ли я те же результаты. Код, который я использовал, приведен ниже:
Model model = new Model();
ReportPlugin reportPlugin = new ReportPlugin();
reportPlugin.setGroupId("org.codehaus.mojo");
reportPlugin.setArtifactId("cobertura-maven-plugin");
Reporting reporting = new Reporting();
reporting.addPlugin(reportPlugin);
model.setReporting(reporting);
StringWriter writer = new StringWriter();
MavenXpp3Writer xpp = new MavenXpp3Writer();
try {
xpp.write(writer, model);
System.out.println(writer.toString());
} catch (IOException e) {
e.printStackTrace();
}
Этот код произвел следующий вывод:
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</project>
Я использовал встроенную версию Maven (3.2.1/1.5.1.20150109-1819) Eclipse Luna. Используемый мной POM имеет следующие зависимости:
maven-reporting-api: 3.0-alpha-2
maven-model: 3.2.5
Надеюсь, это поможет.