Java Maven for Rich Client中的多模块项目

Java Maven for Rich Client中的多模块项目,java,swing,maven,Java,Swing,Maven,我想知道是否有人对如何最好地继续使用Maven和多模块富客户机应用程序(比如说Java Swing)有什么建议 要求是应用程序的某个核心部分存在于某种核心项目中。如果你运行这个核心项目,你仍然可以看到一些东西,比如说,在一个选项卡式窗格中有一堆不同的子模块作为选项卡 核心是可运行的,并显示了一些每个人都通用的核心GUI模块 一个客户可能是一个总线运营商,收到一个配置并看到类似的内容 …而另一位客户可能是一家宠物店,他们会看到这样的情况: 什么是最好的Maven方法 关于超级大国,什么是最好

我想知道是否有人对如何最好地继续使用Maven和多模块富客户机应用程序(比如说Java Swing)有什么建议

要求是应用程序的某个核心部分存在于某种核心项目中。如果你运行这个核心项目,你仍然可以看到一些东西,比如说,在一个选项卡式窗格中有一堆不同的子模块作为选项卡

核心是可运行的,并显示了一些每个人都通用的核心GUI模块

一个客户可能是一个总线运营商,收到一个配置并看到类似的内容

…而另一位客户可能是一家宠物店,他们会看到这样的情况:

什么是最好的Maven方法

关于超级大国,什么是最好的办法。据我所知,您可以拥有项目继承和项目聚合

使用继承并让所有模块从核心项目继承会更好吗

--->岩心聚甲醛

--------Tarif模块POM(运输公司用)

--------路线模块POM(针对运输公司)

--------Cat模块POM(用于宠物店)

--------狗模块POM(用于宠物店)

然后,所有子项目都将引用super,如下所示:

<parent>
    <artifactId>CoreUI</artifactId>
    <groupId>com.huwag</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

科雷伊
com.huwag
1.0-快照
然后,其他一些外部项目将构建特定于客户机的jar。(这就是我不确定的地方…使用继承,如何创建特定于一个客户的配置)

或者。。。。。使用项目聚合是否更好。从这个意义上讲,我的意思是每个超级POM都是特定于客户机的模块的集合。像这样:

--->运输公司

--------Tarif模块POM

--------路由模块POM

--->宠物店

--------Cat模块POM

--------狗模块

--->核心POM(将在其他两个中引用)


com.huwag
MyPetStore
聚甲醛
狗粮
猫币
核心
我认为后者是更好的选择。对我来说,我喜欢这个选项,因为我可以为客户构建更好的特定包装。例如,一个客户端可能希望他的应用程序打包在webstart中,另一个客户端可能希望它打包在小程序中

如果有人能在Maven项目结构方面帮助我,那就太好了


欢迎有经验的任何其他建议。是否有人使用OSGi选项将GUI部分粘合在一起?包装是如何工作的?等等。

您可以在和的帮助下尝试OSGI方法。在这种情况下,您可以为所有客户机使用一些核心模块,为每个客户机使用一些特定的插件,这些插件将加载到框架GUI中。按照类似的思路,如果您的Maven配置将Spring
@Component
带到类路径上,则应用程序上下文可以拾取它们。我们在这方面非常成功。
<project>
  <groupId>com.huwag</groupId>
  <artifactId>MyPetStore</artifactId>
  <packaging>pom</packaging>
  <modules>
    <module>DogComponent</module>
    <module>CatCopmonent</module>
    <module>Core</module>
  </modules>
</project>