3

我的项目要求我获取开源代码,对其进行调整并将其用作依赖项。当我构建它时,我想附加一个分类器(以便区分修改后的代码和原始代码)。以下是 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>  

我的问题是,在我启动构建后,maven 正在生成两个 jar 文件(附加和不附加分类器),即输出包含 2 个名为“atlassian-pageobjects-api-2.1-m14.jar”、“atlassian-pageobjects-api-”的 jar 文件2.1-m14-gc.jar”。

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

mvn 干净安装

请帮忙,让我知道这里出了什么问题。

4

1 回答 1

7

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

这里

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

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

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

我已经破解了一点,您可以使用默认插件 id覆盖默认设置。所以,这就是给我一个-gc.jar名字的单一罐子。

<构建>
  <插件>
    ...
    <插件>
        <artifactId>maven-jar-plugin</artifactId>
        <执行>
            <执行>
                <id>默认罐子</id>
                <阶段>包</阶段>
                <目标>
                    <目标>罐子</目标>
                </目标>
                <配置>
                    <分类器>gc</分类器>
                </配置>
            </执行>
        </执行>
    </插件>
  </插件>  
</build>
于 2012-10-25T04:36:01.217 回答