Maven2:可能部署取决于工件分类器?

时间:2011-08-02 07:31:14

标签: maven-2 maven-3 maven-assembly-plugin

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

  1. 我有一个工件,有一个程序集描述符集,它将构建一个额外的JAR(带有额外的分类器)。默认情况下,Maven2 / 3将部署与主工件一起生成的程序集以删除Maven存储库。有什么办法可以只部署主工件但不能部署程序集吗?

  2. 我有一个工件,我有jar插件生成另一个具有不同分类器的工件(更具体地说,一个EJB工件,我生成一个客户端JAR)。我想只将客户端JAR部署到Maven repo coz我认为主要的EJB工件实际上不会被其他项目共享。是否可以这样做?

  3. 非常感谢


    编辑以提供更多信息:

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

    老实说,部署EJB也没什么坏处,但我只想知道是否可以节省不必要的磁盘空间浪费。

    同样,对于部署程序集,这是因为项目是我们想要部署以让其他项目依赖的东西。但是,在构建该项目时,我们还同时创建了一个单独的程序集(例如,一个多功能的可执行jar),我们只需要在本地构建它,并且它不是其他项目依赖的东西。

2 个答案:

答案 0 :(得分:2)

关闭程序集插件的'attach'选项。然后它将不是正式的工件,它将不会部署;它只是潜伏在目标目录中,生气,你不喜欢它,就像它的兄弟姐妹和阴谋报复一样。

答案 1 :(得分:0)

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