Build War с многомодульным проектом - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть многомодульный проект maven с тремя разными модулями Module-Data, Module-Domain, Module-Web.Все три проекта являются весенними загрузочными проектами, однако Module-Web - это веб-компонент проекта, который обрабатывает все, что ориентировано на Интернет, для которого я хочу создать файл войны.У меня есть родительский проект со следующим pom-файлом, который не содержит кода.

<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>com.somename</groupId>
<artifactId>My-Project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
    <module>module-data</module>
    <module>module-domain</module>
    <module>modele-web</module>
</modules>

Module-Domain зависит от Module-Data, а Module-Web зависит как от Module-Data, так и от Module-Домен.Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь построить проект с использованием maven, он завершается неудачно при построении модуля-домена со следующими ошибками:

package com.somename.data.model does not exist // class file with this error

Файлы класса Module-Domain, которые импортируются из Module-Проект данных терпит неудачу с этой ошибкой.Я подозреваю, что это связано с тем, что maven не добавляет jar-файл Module-Data в Module-Domain при сборке, хотя он указан в файле pom.Как я могу решить эту проблему и создать файл войны со всеми зависимостями?

Module-Domain pom.xml:

    <dependency>
        <groupId>com.somename.data</groupId>
        <artifactId>module-data</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>

Module-Web pom.xml

   <dependency>
        <groupId>com.somename.data</groupId>
        <artifactId>module-data</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.somename.domain</groupId>
        <artifactId>module-domain</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

1 Ответ

0 голосов
/ 26 апреля 2018

Это простой прямой подход, который вы используете.Не должно вызывать проблем.

Module-Domain pom.xml:

<parent>
    <groupId>com.somename</groupId>
    <artifactId>My-Project</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<dependencies>
    <dependency>
        <groupId>com.somename.data</groupId>
        <artifactId>module-data</artifactId>
        <version>0.0.1-SNAPSHOT</version> <!-- Make sure this version is correct -->
    </dependency>
</dependencies>

Module-Web pom.xml:

<parent>
    <groupId>com.somename</groupId>
    <artifactId>My-Project</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<dependencies>
    <dependency>
        <groupId>com.somename.domain</groupId>
        <artifactId>module-domain</artifactId> <!-- pulls "module-data" as well : transitive dependency -->
        <version>0.0.1-SNAPSHOT</version> <!-- Make sure this version is correct -->
    </dependency>
</dependencies>

Do maven cleanскомпилируйте в родительском проекте, который соберет все модули.

Если вы все еще видите какие-либо проблемы с компиляцией, вам необходимо исправить исходный код.

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