Определение плагина в settings.xml не принимает тег сборки

#maven #spotbugs

#maven #точечные ошибки

Вопрос:

Я хотел бы определить глобальный плагин внутри моего Settings.xml файла, который выглядит как:

 <settings>
  <profiles>
    <profile>
      <id>spotbugs</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.0.4</version>
            <configuration>
                <effort>Max</effort>
                <threshold>Low</threshold>
                <failOnError>true</failOnError>
                <plugins>
                    <plugin>
                        <groupId>com.h3xstream.findsecbugs</groupId>
                        <artifactId>findsecbugs-plugin</artifactId>
                        <version>1.10.1</version>
                    </plugin>
                </plugins>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>spotbugs</activeProfile>
  </activeProfiles>
</settings>
  

к сожалению, я получаю:

[ПРЕДУПРЕЖДЕНИЕ] [WARNING] При создании эффективных настроек возникли некоторые проблемы [ПРЕДУПРЕЖДЕНИЕ] Нераспознанный тег: ‘build’ (позиция: START_TAG видно … n … @5:14) @ /Users/gs/.m2/settings.xml , строка 5, столбец 14 [ПРЕДУПРЕЖДЕНИЕ]

возможно ли поместить информацию о плагине, как указано выше, в pluginRepositries ? Я хотел бы иметь глобальную конфигурацию для этого плагина вместо редактирования каждого отдельного pom.xml для использования mvm spotbugs:spotbugs

Комментарии:

1. settings.xml не позволяет определить тег сборки, см. maven.apache.org/settings.html Чтобы определить плагин глобально, вы можете сделать это с помощью корпоративного файла pom

Ответ №1:

Вы можете добиться этого, поместив конфигурацию плагинов в один раздел super / corporate pom i:

 <build>
    <pluginManagement>
        <plugins>
           ....
        </plugins>
    </pluginManagement>
<build>
  

Для того, чтобы использовать все это, ваш проект должен иметь родительский параметр для этого pom.