Maven 2 Maven2:是否可能部署取决于工件分类器?

Maven 2 Maven2:是否可能部署取决于工件分类器?,maven-2,maven-3,maven-assembly-plugin,Maven 2,Maven 3,Maven Assembly Plugin,事实上,我有两个不同的问题,但我认为它们有点相关: 我有一个工件,带有一个组装描述符集,它将构建一个额外的JAR(带有额外的分类器)。默认情况下,Maven2/3将部署与主工件一起生成的程序集,以删除Maven存储库。有没有办法只部署主工件而不部署程序集 我有一个工件,其中我让jar插件生成另一个具有不同分类器的工件(更具体地说,一个EJB工件,我生成一个客户机jar)。我只想将客户机JAR部署到Maven repo,因为我认为主EJB工件实际上不会被其他项目共享。有可能吗 非常感谢 编辑以提

事实上,我有两个不同的问题,但我认为它们有点相关:

  • 我有一个工件,带有一个组装描述符集,它将构建一个额外的JAR(带有额外的分类器)。默认情况下,Maven2/3将部署与主工件一起生成的程序集,以删除Maven存储库。有没有办法只部署主工件而不部署程序集

  • 我有一个工件,其中我让jar插件生成另一个具有不同分类器的工件(更具体地说,一个EJB工件,我生成一个客户机jar)。我只想将客户机JAR部署到Maven repo,因为我认为主EJB工件实际上不会被其他项目共享。有可能吗

  • 非常感谢


    编辑以提供更多信息:

    避免部署EJB的原因是,除了包含EJB的项目之外,EJB主构件不会被其他项目依赖。包含项目将构建一个EAR(包含EJB),通常我们只需要本地构建(通过mvn包)。然而,EJB客户机是我们将部署到我们的repo中的东西,以便在其他项目需要与我们的应用程序通信时让它们共享

    老实说,部署EJB也没有坏处,但我只是想看看是否可以在存储库中节省不必要的磁盘空间浪费


    类似地,对于部署程序集,这是因为项目是我们想要部署以让其他项目依赖的东西。但是,在构建该项目时,我们也同时创建了一个单独的程序集(例如,一个一体式可执行jar),我们只需要在本地构建该程序集,这不是其他项目所依赖的。

    基于您的第一个问题,我想知道为什么要创建通常部署的补充组件以及主要工件。如果您不想阻止,您可以将程序集的创建放在配置文件中,但这意味着您不会仅通过激活配置文件在常规构建中生成补充工件。

    关闭程序集插件的“附加”选项。那么它就不会是正式的工件,也不会部署;它只会潜伏在目标目录中,生你的气,你不喜欢它,就像它的哥哥一样,并策划报复。

    为什么你要阻止部署主EJB?虽然这只适用于一半的行为(避免部署程序集),但在我看来,没有办法根据分类器控制部署。这个解决方案至少适用于我正在寻找的一个案例。谢谢你,我认为你是正确的,部署插件在这方面是无法控制的。