我知道这违反了 maven 最佳实践,但也许我的情况是规则中为数不多的例外之一——至少我一直在思考替代方案:(
环境是这样的:
- 我们有一个遗留应用程序,该应用程序具有基于专有技术的与外部世界的接口
- 我们想使用 flash 作为新的前端
- 基于遗留接口,我们生成 flash 类并将它们打包到 flash swc 中以供前端开发人员使用
- 基于遗留接口,我们生成将 flash 服务请求(来自 blazeds)连接到遗留接口的 java 类
- 为了让它变得更加困难,我们不想/不能为每个接口单独使用一个 pom,因为我们有几十个(接口),它们只会在它们的 artifactId 上有所不同。相反,我使用“通用”项目结构,它将为每个构建(由詹金斯)参数化。该项目将仅在完全自动化的环境中使用。
首先,我尝试将所有这些都放在一个“简单”的项目中,该项目一直到应该安装工件的地步。
我目前的方法是受 maven 参考第 13 章启发的多模块项目结构,它本身有一些缺点:
GenericProject
|
+-- GenerateSources from legacy interface
| +-- pom.xml
|
+-- Java
| +-- pom.xml
|
+-- SWC
| +-- pom.xml
|
+-- pom.xml
这种方法有一个缺点,我从“Java”和“SWC”引用了“GenerateSource”的内部结构,这很丑但可以容忍。
真正阻碍我的是,我必须对安装和部署插件进行大量调整,以获取带有触发整个过程的遗留界面的名称和版本的工件。我现在让它运行,但它看起来很脆弱。
我考虑在两个简单的项目中拆分/复制项目:
- GenerateSources & Java
- 生成源和 SWC
但这只会解决交叉引用的小麻烦。
正如 Aaron 在他的评论中指出的那样,我不清楚说明这个问题。经过更多的实验,这对我来说更清楚了:基本上我有两个问题要解决
- 一起安装/部署两个工件
- 将工件命名为不同于
project.artifactId
有什么建议可以让整个过程更像 Maven 吗?
提前致谢。