两个带有MVC设计的java maven项目:他们如何共享相同的“M”类?

时间:2016-02-24 12:17:02

标签: java maven design-patterns

我在两个独立的maven项目中开发了一个JavaEE应用程序:
- 一个项目是API
- 另一个是JSF应用程序,其中调用第一个项目的API。

它们共享相同的模型(描述我的数据结构的类)。

如何让这两个项目共享同一个模型?我应该创建第三个Maven项目,它将包含这些公共类,而这个第3个项目将是2个项目的依赖项吗?看起来有点沉重。有更好的设计吗?

1 个答案:

答案 0 :(得分:1)

我猜你的模型类将被编译成一个单独的可交付成果,例如一个JAR文件。由于每个Maven项目对象模型都描述了一个可交付成果,因此为了正确地重用代码并在两个Web应用程序中包含二进制文件,最合理的选择就是您已经提出的那个。

这样,您的项目可能是这样的:

+ pom.xml (parent, "pom" type packaging with 3 sub-modules) |_ /ModelJAR/pom.xml (model classes, "jar" type packaging) |_ /API/pom.xml (REST? API, maybe "war" type packaging) |_ /WebAPP/pom.xml (web application, maybe "war" type packaging)

正如您所说,API和WebAPP项目都取决于模型项目。它可能看起来很麻烦,但(并且我承认这是一个品味问题)它清楚地说明了代码中每个可交付成果的数量,性质和位置。我希望你觉得这很有用。