【发布时间】:2018-08-02 17:52:56
【问题描述】:
我创建了一个包含三个模块的 maven 父项目:
- 数据层模块
- data-service-module(使用数据层模块)
- web-module(使用 data-services-module)
这是来自父 pom.xml 的 sn-p :
<groupId>org.mygroup</groupId>
<artifactId>myArtifact</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>data-layer-module</module>
<module>data-service-module</module>
<module>web-module</module>
</modules>
data-layer-module pom.xml 不包含对其他模块的依赖项(它仅包含其外部依赖项)。
data-service-module 在其pom.xml 中对data-layer-module 有依赖关系:
<dependencies>
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>data-layer-module</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
而web-module 依赖于data-service-module:
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>data-service-module</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
一切都很好,但我不希望web-module 可以访问data-layer-module。我需要强制执行三层网络服务数据模型。此配置并非如此。
我显然尝试手动将其从 web-module pom.xml 中排除:
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>data-service-layer</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.mygroup</groupId>
<artifactId>data-layer-module</artifactId>
</exclusion>
</exclusions>
</dependency>
但这会导致编译错误,因为data-service-module 找不到它的data-layer-module 依赖项。
这个配置怎么做?
【问题讨论】: