У меня есть структура Maven, которая прекрасно строится, но я как-то борюсь с ресурсами Checkstyle. структура выглядит следующим образом:Совместное использование ресурсов для нескольких модулей Maven
- Родитель
- Суб Родитель A
- Модули
- Суб Родительские B
- модули
- Строительные ресурсы
- SRC/основные/ресурсы файлы
- Суб Родитель A
Родитель должен определить все, что оба родителя имеют суб общего. Плагин Checkstyle имеет «Build Resources» в качестве зависимости. Определяется как «/checktyle_resources/checkstyle.xml». У меня проблемы с моим плагином Checkstyle, потому что он не может найти необходимые ресурсы, если я создаю «Родительский». Если я создаю «Sub Parent A» или «Sub Parent B», checkstyle работает нормально, но, конечно, «Build Resources» должны быть установлены в хранилище раньше.
Есть ли у кого-нибудь идея, почему это не сработает? Является ли это структурой Maven даже хорошей идеей?
Благодаря
PS: Я видел this вопрос. И в том, как ответ описывает решение, он отлично работает в моем проекте. Но моя многослойная родительская структура, похоже, создает здесь какую-то проблему.
Вот связанный контент pom.xml родителя.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<target.jdk>1.6</target.jdk>
<build.module.versions>1.3</build.module.versions>
<compiler.source.level>${target.jdk}</compiler.source.level>
<compiler.target.level>${target.jdk}</compiler.target.level>
<compiler.version>${target.jdk}</compiler.version>
<maven.version>2.2.1</maven.version>
<maven.checkstyle.plugin.version>2.10</maven.checkstyle.plugin.version>
<checkstyle.fail.on.error>false</checkstyle.fail.on.error>
<junit.version>4.11</junit.version>
<checkstyle.version>5.4</checkstyle.version>
<checkstyle.skip>false</checkstyle.skip>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>group</groupId>
<artifactId>build-tools</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>group</groupId>
<artifactId>build-tools</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle</id>
<goals>
<goal>checkstyle</goal>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<failsOnError>${checkstyle.fail.on.error}</failsOnError>
<failOnViolation>${checkstyle.fail.on.error}</failOnViolation>
<enableRulesSummary>false</enableRulesSummary>
<configLocation>/Checkstyle_Configuration/checks.xml</configLocation>
<headerLocation>/Checkstyle_Configuration/file_header_java_regexp.txt</headerLocation>
<suppressionsLocation>/Checkstyle_Configuration/suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file.donothing</suppressionsFileExpression>
<propertyExpansion>checkstyle.suppressions.file=${project.build.directory}/checkstyle-suppressions.xml</propertyExpansion>
<!-- <propertyExpansion>checkstyle.suppressions.file=Checkstyle_Configuration/suppressions.xml</propertyExpansion> -->
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<excludes>**/*Bean.java</excludes>
<excludes>**/gen*/*.java</excludes>
<skip>${checkstyle.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven.plugin.dependency.version}</version>
</plugin>
</plugins>
</pluginManagement>
<!--************************************************************************
* PLUGINS SECTION ************************************************************************* -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<inherited>false</inherited>
<configuration <configLocation>/Checkstyle_Configuration/volkswagen_checks.xml</configLocation> <headerLocation>/Checkstyle_Configuration/file_header_java_regexp.txt</headerLocation><suppressionsLocation>/Checkstyle_Configuration/suppressions.xml</suppressionsLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.resources.version}</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
<!--****************************************************************************
* MODULES SECTION ***************************************************************************** -->
<modules>
<module>build-tools</module>
<module>sub-parent-a</module>
<module>sub-parent-b</module>
</modules>
Пожалуйста, напишите свой 'pom.xml'. Действительно ли A и B (или их модули) заявляют о зависимости от проекта ресурсов? – chrylis
Нет, но плагин Checkstyle в родительском файле, который наследуется Sub Parents и их модулями. Если я самостоятельно создаю модуль или дочерний родитель, все работает нормально. Я добавлю pom.xml через секунду. – fancy
Родитель не может зависеть от одного из своих детей; вы должны получать ошибки Reactor. – chrylis