我有一个多模块maven项目,包含三个不同的模块Module-Data,Module-Domain,Module-Web。所有这三个项目都是Spring启动项目,但是Module-Web是项目的Web组件,它处理所有面向Web的内容,我想为其构建war文件。我有一个父项目,其中包含以下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>
模块 - 域依赖于模块 - 数据和模块 - Web依赖于模块 - 数据和模块 - 域。我遇到的问题是,当我尝试使用maven构建项目时,在使用以下错误构建Module-Domain时失败:
package com.somename.data.model does not exist // class file with this error
从Module-Data项目导入的模块域类文件因此错误而失败。我怀疑这是因为maven在构建时没有将Module-Data jar添加到Module-Domain,尽管它在pom文件中被引用。如何解决此问题并生成包含所有依赖项的war文件?
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>
答案 0 :(得分:1)
这是您正在使用的简单直接方法。不应该引起问题。
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>
在构建所有模块的父项目上执行 maven clean compile 。
如果您仍然看到任何编译问题,则需要修复源代码。