1

我有一个现有的项目,我将把它分成三个项目。假设现有项目名为 A。我想将我可以使用的逻辑提取到另外两个项目 B 和 C 中。所以现在项目 A 只依赖于 B 和 C,并且项目 A 具有该特定项目的专用代码。但是,B 和 C 都需要一个 User 类才能工作(安全性)。目前我在每个地方都使用相同的用户类。是否可以在每个项目中使用相同的 User 类,如果可以,如何使用?你会把它放在哪里?不同的项目使用相同的 User 类听起来是不是一个坏主意?如果我需要处理多个 User 类,我应该如何在它们之间进行转换?

4

2 回答 2

2

最好的方法是创建一个多模块构建,如下所示:

 project-app (pom.xml)
  +-- project-A (pom.xml) dep: project-B,project-C
  +-- project-B (pom.xml) dep: user
  +-- project-C (pom.xml)
  +-- user (pom.xml)

这将解决您的要求。但也可能是您的开发超出了这意味着您想要创建另一个项目,让我们称之为project-new-app,它也需要用户类。这将表明您必须进入另一个方向,例如。为用户部分创建一个单独的项目:

user (pom.xml)

现在project-new-app可以使用 user 部分作为一个简单的依赖:

project-new-app (pom.xml) dep: user
  +--- maybe more..

之后您的所有项目都可以依赖于该用户项目。所以原来的项目应用程序

 project-app (pom.xml)
  +-- project-A (pom.xml) dep: project-B,project-C
  +-- project-B (pom.xml) dep: user
  +-- project-C (pom.xml)
于 2013-06-28T07:45:56.027 回答
0

为了进一步扩展 Karl-Heinz 的回答:

project-app (pom.xml)
+-- project-A : dep: project-B
+-- project-B : dep: user
+-- project-C : dep: user-impl1
+-- project-D : dep: user-impl2
+-- user-api :  contains either or both:
                 a) a User interface,
                 b) an AbstractUser class to be extended
+-- user-impl1 : some implementation of the User class
+-- user-impl2 : some other implementation of the User class

在上面的示例中,我将由您自己决定要将依赖项绑定到user-impl1和的位置user-impl2

确保您的代码适用于更通用的User类/接口实现,并且您的代码重构应该可以正常工作。

无论如何,不​​要在你的模块周围复制 User 类。很快你就会发现,如果你使用副本,它会给你带来比你想象的更多的头痛。

于 2013-06-28T11:43:41.627 回答