Maven 为Nexus重命名文件

Maven 为Nexus重命名文件,maven,deployment,nexus,Maven,Deployment,Nexus,背景:我们正在迁移一个应用程序,必须采用一些新的结构,以便自动安装过程在我们的客户站点上运行 到目前为止,我们使用maven分类器构建同一模块的3种不同风格(比如A、B和C)。问题是我们客户站点的自动安装过程不能像我们预期的那样处理这个问题。从nexus下载时,3个工件相互覆盖,只有最后一个工件实际存在 我们绝对不可能从客户的角度解决这个问题(尽管这很简单!)。事实上,我们的客户绝对不会改变网站上的任何东西——我们无法控制客户网站上的环境 因此,我们建议的解决方案是,部署3个具有不同工件的工件。

背景:我们正在迁移一个应用程序,必须采用一些新的结构,以便自动安装过程在我们的客户站点上运行

到目前为止,我们使用maven分类器构建同一模块的3种不同风格(比如A、B和C)。问题是我们客户站点的自动安装过程不能像我们预期的那样处理这个问题。从nexus下载时,3个工件相互覆盖,只有最后一个工件实际存在

我们绝对不可能从客户的角度解决这个问题(尽管这很简单!)。事实上,我们的客户绝对不会改变网站上的任何东西——我们无法控制客户网站上的环境

因此,我们建议的解决方案是,部署3个具有不同工件的工件。即modA、modB和modC

我的问题是:如何以“最优雅的方式”实现这一点?

我们不想重组整个项目,因为真正将模块数量增加三倍将是可怕的

到目前为止,我甚至不确定这些想法是否可行:

  • 使用antrun插件复制/重命名文件,并从模板生成相应的pom文件,然后使用部署文件上载到nexus
  • 使用程序集?怎么做
  • 在每个应部署的模块内创建具有相应pom文件(以及客户需要的GAV)的新子模块,但这些子模块中的每个基本上只会从targetA/app--,targetB/…复制工件。。。和targetC/。。。这样,我希望至少有一个或多或少干净的部署步骤(不使用部署文件来部署WAR和pom)。pom文件将是最小的,从根模块查看,我们仍然只会看到一个模块“mod”,并隐藏其中的丑陋,而不是有3个模块“modA”、“modB”和“modC”。这样,我们还可以在项目上解耦devs视图和deployments视图。开发人员可以继续他们习惯的方式,而集成商将负责“按照客户希望的方式进行”部分。现在我的问题是:如何创建一个maven项目,其中“完整构建”实际上只是复制一个war?

我很清楚,所有这些选择都是可怕的。如果你知道解决我问题的“正确方法”,我会非常感激。否则,我真的很想知道如何实现“复制战争”部分。

如果您想要3个不同的工件,我建议使用3个maven模块。最后大家都明白了。如果artifactId与pom中的该值不匹配,则很难追溯到源代码。到目前为止,您做了什么?使用分类器?还是版本号?@JFMeier直到现在我们都在使用。但我们的整个交付过程是不同的。所以,不幸的是,到现在为止的一切都不再适用了。(我把它添加到问题中)最好是简单地制作三个不同的模块……正如前面提到的。。。。