多模块项目。包括:parent 模块和子模块:客户端、共享、服务器。如何?
Multi module project. Consist of : parent module and submodules: client, shared, server. How to?
我想要一个网络应用程序的多模块项目。有 parent
个包含 3 个子模块的模块:
client
, shared
, server
.
我想用 maven 构建它。
我想 client
可以访问:server
和 shared
模块代码。
我想 shared
可以访问:server
模块代码。
我要实现的依赖关系
client -> shared -> server
client -> server
可以用maven构建吗?
这是我当前的 poms:
parent:
<modules>
<module>server</module>
<module>shared</module>
<module>client</module>
</modules>
客户:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
共享没有依赖关系
服务器:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
编辑
我想让我的 shared
模块能够访问 server
模块代码,但是当我在 shared
模块内向 server
模块添加依赖项时,我收到有关循环依赖项的错误,无法构建项目。我的问题是如何在所有子模块中准备 poms 来实现这一点?如您所见,shared
模块现在没有任何依赖项。 –
没有 Maven 上下文,您的体系结构中存在循环依赖性问题。
没有两个模块可以相互依赖,因为在那种情况下你无法构建它们。您可以做的是创建另一个模块,其名称可能类似于 "real-shared-module" 并且共享模块和服务器模块都依赖于该模块,或者您真正重新排列共享模块,使其不依赖于任何模块,其他模块和其他模块依赖于它.
据我所知,依赖关系是可传递的
所以:
客户:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
服务器:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
我倾向于尝试让生活更简单,并且只有两个模块(用于模型、代理和客户端代码)。
例如
model (maven project)
webclient (maven project)
shared (package)
server (package)
client (package)
由于相互依赖,我不完全确定你可以用三个模块来完成。
仅此而已,我们有用于数据库、模型和客户端(gwt 网络客户端)的模块,因为它拆分了主要关注点并保持依赖关系健全。
我想要一个网络应用程序的多模块项目。有 parent
个包含 3 个子模块的模块:
client
, shared
, server
.
我想用 maven 构建它。
我想 client
可以访问:server
和 shared
模块代码。
我想 shared
可以访问:server
模块代码。
我要实现的依赖关系
client -> shared -> server
client -> server
可以用maven构建吗?
这是我当前的 poms:
parent:
<modules>
<module>server</module>
<module>shared</module>
<module>client</module>
</modules>
客户:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
共享没有依赖关系
服务器:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
编辑
我想让我的 shared
模块能够访问 server
模块代码,但是当我在 shared
模块内向 server
模块添加依赖项时,我收到有关循环依赖项的错误,无法构建项目。我的问题是如何在所有子模块中准备 poms 来实现这一点?如您所见,shared
模块现在没有任何依赖项。 –
没有 Maven 上下文,您的体系结构中存在循环依赖性问题。 没有两个模块可以相互依赖,因为在那种情况下你无法构建它们。您可以做的是创建另一个模块,其名称可能类似于 "real-shared-module" 并且共享模块和服务器模块都依赖于该模块,或者您真正重新排列共享模块,使其不依赖于任何模块,其他模块和其他模块依赖于它.
据我所知,依赖关系是可传递的
所以:
客户:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
服务器:
<dependencies>
<dependency>
<groupId>pl.derp</groupId>
<artifactId>shared</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
我倾向于尝试让生活更简单,并且只有两个模块(用于模型、代理和客户端代码)。
例如
model (maven project)
webclient (maven project)
shared (package)
server (package)
client (package)
由于相互依赖,我不完全确定你可以用三个模块来完成。
仅此而已,我们有用于数据库、模型和客户端(gwt 网络客户端)的模块,因为它拆分了主要关注点并保持依赖关系健全。