制作一个默认具有分类器的jar

时间:2016-11-11 15:21:43

标签: maven

我们有一个名为core-services的项目。这构建了三个罐子:

  • core-services-client包含所有客户端类
  • core-services-server:包含所有服务器和客户端类
  • core-services-test:包含所有junit类

现在,我默认构建core-services-server jar,然后使用程序集构建clienttest jar。如果开发人员想要使用客户端或测试jar,他们必须指定分类器。但是,当他们想要依赖服务器jar时,他们不会指定分类器。

这将导致开发人员在他们真正应该使用客户端jar时只使用服务器jar。我想在将它们用作依赖项时构建所有三个罐子以要求分类器。但是,在指定项目时我不能这样做:

<groupId>com.vegicorp</groupId>
<artifactId>core-services</artifactId>
<version>1.0.0</version>
<classifier>server</classifier>
<packaging>jar</packaging>

我知道我可以使用<finalName>来调用默认jar core-services-server,但我想确保如果开发人员依赖于core-services,他们必须说明他们是否需要服务器,客户端或测试类。如果我只是重命名它,默认情况下它们将获得服务器jar。

如何指定默认jar的分类器为server

1 个答案:

答案 0 :(得分:0)

我明白了。我可以将默认分类器放入maven-jar-plugin中的pom.xml配置中:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <!-- All other configuration information is in the parent pom -->
    <configuration>
        <classifier>server</classifier>
    </configuration>
</plugin>

当我执行mvn deploy时,我得到{em>警告 No primary artifact to deploy, deploying attached artifacts instead,并且所有三个jar都使用分类器进行部署。