Создание тега XML для pom.xml

1

Я создаю тэг 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> на выходе я показали выше. Как я могу это исправить?

Теги:
maven
pom.xml
xml-parsing

1 ответ

1
Лучший ответ

Я попытался посмотреть, получаю ли я те же результаты. Код, который я использовал, приведен ниже:

    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

Надеюсь, это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню