我发现Maven是一个非常有用的项目工作范例,可能主要是因为存储库概念。我现在已经发现了一个速度驼峰,从我的角度来看,同时在那里有一个有效的观察点,我希望你或同事能有一些解决这个难题的方法。
我认为Maven是一个项目级工具,可以让你将项目从其他项目组装成构建块(Maven artefacts)。我将给出一个愚蠢的例子,说明我希望在项目中使用Maven实现的目标。我正在引用
为了说明这个例子,考虑一切都在同一组伞中:
对于中等规模的应用程序,我可能有几个子项目/模块,请考虑以下示例。为了开发,我希望组织项目作为各种子项目。
app_one
|
+-- pom.xml
|
+-- gui
| |
| +-- pom.xml ....... <artefact>gui</artefact>
|
+-- datastore (DAL) ... <artefact>data</artefact>
| |
| +-- pom.xml
|
+-- domainentities .... <artefact>entities</artefact>
| |
: +-- pom.xml
:
我正在寻找一种分离后续(结构相似)应用程序的好方法,例如: app_two 。其他人如何组织项目以避免人工制品名称冲突。 <groupId>
和&#39;&#39;是唯一区分子模块的东西。 <version>
号码应该是特定的,&#39; groupId:artefact`对
app_two
|
+-- pom.xml
|
+-- gui
| |
| +-- pom.xml ....... <artefact>gui</artefact>
|
+-- datastore (DAL) ... <artefact>data</artefact>
| |
| +-- pom.xml
|
+-- domainentities .... <artefact>entities</artefact>
| |
: +-- pom.xml
:
在两个示例应用之间,app_one和app_two现在有两个:
在概念上完全不同且不同的人工制品。构建是本地项目,子项目是内部使用。
事情是避免人为的长名称,并避免为常用的项目节点(例如 GUI )创建名称;其次,当根据通用方案命名事物时,它允许我们拥有脚本和执行一些常见任务的工具。
这是标准模式的东西吗?我不想重新发明那些效果很好的车轮。
第二件事;类似的东西:
通常可以在不同的应用项目中重复使用。因此,交易的第二部分可能是人们如何与Maven共享项目中的子组件?我们过去所做的尝试并没有很好的锻炼。
此时看起来好像Maven非常适合构建应用程序构建块,例如log4j或jdbc-driver。在应用程序子模块级别上有什么好的做法?
可能相关的问题 :
我觉得这些问题也涵盖了类似的问题,只是为了提供手头问题的深度。目前还没有答案。
目前,我还要补充一点,我们想要一个Maven解决方案 - Gradle或替代方案目前已超出范围。
答案 0 :(得分:1)
我试着回答你问题的“分享子产品”部分。
这种风格的项目结构具有强制清晰分离关注点的优势。我们经常在多个项目中包含内部库代码。
祝你好运。