当与"分类器"标签一起使用时,Maven生成两个jar文件

Ash*_*ish 3 java build maven

我的项目要求我采用开源代码,对其进行调整并将其用作依赖项.当我构建它时,我想用它附加一个分类器(以便区分修改代码和原始代码).以下是片段形式pom.xml.

<plugins>
    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
                <id>gc-custom</id>
                <goals>
                    <goal>jar</goal>
                </goals>

                <configuration>
                    <classifier>gc</classifier>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>  
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我触发构建之后,maven生成两个jar文件(附加和不附加分类器),即输出包含2个名为"atlassian-pageobjects-api-2.1-m14.jar"的jar文件,"atlassian-pageobjects-api- 2.1-M14-gc.jar".

我正在使用以下命令来构建:

mvn clean install

请帮忙,让我知道这里有什么问题.

Nis*_*ant 7

查看文档似乎分类器用于生成额外的jar.

看到这里:

通过添加/或/指定要包含或排除的文件集模式列表,并在pom.xml中添加分类器.

注意: jar-plugin必须在新的执行中定义,否则它将替换jar-plugin的默认使用,而不是添加第二个工件.分类器还需要创建多个工件.

因此,根据文档,它听起来好像你没有提供<id>执行它将覆盖默认的jar机制,并给你一个带-gc.jar附录的jar .但事实并非如此.你总是最后得到两个罐子.

我已经破解了一下,您可以使用默认的插件ID覆盖默认设置.所以,这是给我一个-gc.jar名字的jar的东西.

<build>
  <plugins>
    ...
    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
                <id>default-jar</id>
                <phase>package</phase>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <classifier>gc</classifier>
                </configuration>
            </execution>
        </executions>
    </plugin>
  </plugins>  
</build>