Родительский проект maven выдает ошибки при компиляции с IDEA, но модули компилируются без проблем - PullRequest
0 голосов
/ 10 января 2019

Моя проблема: когда я запускаю «mvn package» из командной строки, он компилируется нормально, но когда я перестраиваю проект в IntelliJ IDEA (2018.3.2), он выдает сотни ошибок, говорящих «бла-бла-пакет не существует» или "не могу найти символ бла-бла".

Моя структура Maven состоит из родительского pom с 4 подмодулями (скажем, A, B, C, D), которые ссылаются на родительский pom. Модуль A ссылается на B & C. B & C каждый ссылается на D. Родитель имеет упаковку, установленную на «pom», а четыре модуля имеют упаковку на «jar». Я использую плагин maven-dependency-plugin для упаковки B, C, D в вывод A.

Этот бит должен быть важен: когда я щелкаю правой кнопкой мыши по любому из проектов (A, B, C или D) в проводнике проектов IDEA и нажимаю перестроить, каждый из них собирается без проблем. Когда я щелкаю правой кнопкой мыши по родительскому проекту и нажимаю rebuild (или просто нажимаю Ctrl + Shift + F9), я получаю эти ошибки о пакетах или символах, которые не найдены. Исходные файлы с сообщениями об ошибках находятся в модуле A, который, как я уже сказал, компилируется без проблем.

Более того: все зависимости модуля A (естественно) определены под pom модуля A. Если я перемещаю зависимости в родительский pom, проблема исчезает, и все компилируются нормально, но когда я перемещаю зависимости обратно в pom модуля A., снова возникают проблемы.

Понятия не имею, почему модуль A сам прекрасно компилируется и почему родительский pom пытается скомпилировать исходный код модуля A.

Я рассматривал похожие вопросы о стековом потоке, касающиеся компиляции maven без проблем, но IDEA выдавал ошибки, пытался реимпортировать, переиндексировать, аннулировать кеши. Ни одно из предложенных решений не устранило мою проблему.

Любые предложения приветствуются

Редактировать: вот pom.xml, который я использую. (Я не могу получить так, чтобы правильно отобразить тег проекта, извините)

pom для модулей B, C и DI, на мой взгляд, не имеют значения на данном этапе, потому что я понял, что эта ошибка возникает в версии кода, где модуль A не содержит код, который зависит от модулей B, C или D. Ниже приведены pom .xml, которые вызывают эту ошибку, и модули B, C и D не видны.

Также, используя maven в комплекте с Atlassian Plugin SDK, который является Maven 3.2.1

Parent pom.xml

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/maven-v4_0_0.xsd"> tr.com.my-organization.sdlc.pom Корневой-П-атль 3.1.0

<modelVersion>4.0.0</modelVersion>
<groupId>tr.com.my-organization</groupId>
<artifactId>my-project-aggregator</artifactId>
<packaging>pom</packaging>
<version>2.1.0.1</version>
<modules>
    <module>moduleD</module>
    <module>moduleC</module>
    <module>moduleB</module>
    <module>moduleA</module>
</modules>
<name>My Project Aggregator POM</name>
<properties>
    <dep.amps.version>5.0.3</dep.amps.version>
    <dep.jira.version>7.0.0</dep.jira.version>
    <buildNumber>1</buildNumber>
    <pkg.build.javaVersion>1.8</pkg.build.javaVersion>
    <dep.httpclient.version>4.3.4</dep.httpclient.version>
    <dep.testkit.version>5.2.26</dep.testkit.version>
    <dep.servlet.version>2.4</dep.servlet.version>
    <dep.junit.version>4.10</dep.junit.version>
    <dep.javax.version>1.1.1</dep.javax.version>
    <dep.gson.version>2.3</dep.gson.version>
    <dep.slf4j.version>1.6.6</dep.slf4j.version>
    <dep.mockito.version>1.8.5</dep.mockito.version>
    <dep.template.version>1.3.1</dep.template.version>
    <dep.springosgi.version>1.1.3</dep.springosgi.version>
    <dep.springcontext.version>2.5.6.SEC02</dep.springcontext.version>
    <dep.ao.version>0.19.7</dep.ao.version>
    <dep.commons-lang.version>2.4</dep.commons-lang.version>
    <dep.jira-greenhopper.version>6.4.1</dep.jira-greenhopper.version>
    <upm.license.compatibility.version>2.0.1</upm.license.compatibility.version>
    <sal.api.version>2.4.0</sal.api.version>        
    <useFastdevCli>false</useFastdevCli>
</properties>

<profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>bamboo</id>
        <properties>
            <buildNumber>${bambooBuildNumber}</buildNumber>
        </properties>
    </profile>
</profiles>

pom.xml для модуля A

    <?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"> tr.com.my-организация мой-проект-агрегатор 2.1.0.1 ../

<modelVersion>4.0.0</modelVersion>
<artifactId>moduleA</artifactId>
<packaging>atlassian-plugin</packaging>

<properties>
    <pkg.build.javaVersion>1.8</pkg.build.javaVersion>
    <dep.httpclient.version>4.3.4</dep.httpclient.version>
    <dep.testkit.version>5.2.26</dep.testkit.version>
    <dep.servlet.version>2.4</dep.servlet.version>
    <dep.junit.version>4.10</dep.junit.version>
    <dep.javax.version>1.1.1</dep.javax.version>
    <dep.gson.version>2.3</dep.gson.version>
    <dep.slf4j.version>1.6.6</dep.slf4j.version>
    <dep.mockito.version>1.8.5</dep.mockito.version>
    <dep.template.version>1.3.1</dep.template.version>
    <dep.springosgi.version>1.1.3</dep.springosgi.version>
    <dep.springcontext.version>2.5.6.SEC02</dep.springcontext.version>
    <dep.ao.version>0.19.7</dep.ao.version>
    <dep.commons-lang.version>2.4</dep.commons-lang.version>
    <dep.jira-greenhopper.version>6.4.1</dep.jira-greenhopper.version>
    <upm.license.compatibility.version>2.0.1</upm.license.compatibility.version>
    <sal.api.version>2.4.0</sal.api.version>
    <useFastdevCli>false</useFastdevCli>
</properties>

<dependencies>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-api</artifactId>
        <version>${dep.jira.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.osgi</groupId>
        <artifactId>spring-osgi-core</artifactId>
        <version>${dep.springosgi.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${dep.springcontext.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${dep.junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-osgi-testrunner</artifactId>
        <version>1.2.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>${dep.javax.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.2-atlassian-1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>${dep.servlet.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${dep.slf4j.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${dep.httpclient.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${dep.mockito.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.templaterenderer</groupId>
        <artifactId>atlassian-template-renderer-api</artifactId>
        <version>${dep.template.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${dep.commons-lang.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.jira.plugins</groupId>
        <artifactId>jira-greenhopper-plugin</artifactId>
        <version>${dep.jira-greenhopper.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.activeobjects</groupId>
        <artifactId>activeobjects-plugin</artifactId>
        <version>${dep.ao.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.upm</groupId>
        <artifactId>licensing-api</artifactId>
        <version>${upm.license.compatibility.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.upm</groupId>
        <artifactId>upm-api</artifactId>
        <version>${upm.license.compatibility.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.sal</groupId>
        <artifactId>sal-api</artifactId>
        <version>${sal.api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-jira-plugin</artifactId>
            <version>${dep.amps.version}</version>
            <extensions>true</extensions>
            <configuration>
                <productVersion>${dep.jira.version}</productVersion>
                <productDataVersion>${dep.jira.version}</productDataVersion>
                <enableQuickReload>true</enableQuickReload>
                <enableFastdev>false</enableFastdev>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-storage-plugin</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                        <includeArtifactIds>plugin-license-storage-plugin</includeArtifactIds>
                        <stripVersion>true</stripVersion>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...