1

我已经配置maven-jar-plugin如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.2</version>
  <configuration>
    <finalName>${project.artifactId}.main</finalName>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>test-jar</goal>
      </goals>
      <configuration>
        <finalName>${project.artifactId}.tests</finalName>
      </configuration>
    </execution>
  </executions>
</plugin>

我希望我的输出 JAR 文件被调用ARTIFACT.main.jar并且ARTIFACT.tests.jar. 前者正在工作,但后者却出现了ARTIFACT.tests-tests.jar。有什么办法可以调整上面的配置去掉-tests分类器?

4

1 回答 1

1

不幸的是,在查看了maven-jar-plugin源代码后,我认为无法tests从测试 jar 中删除分类器。

execute在目标期间调用的test-jar方法将方法的输出getClassifier()附加到分类器:

File jarFile = createArchive();
String classifier = getClassifier();
if ( classifier != null )
{
    projectHelper.attachArtifact( getProject(), getType(), classifier, jarFile );
}
else
{
    getProject().getArtifact().setFile( jarFile );
}

并且该getClassifier()方法返回test-jar目标的硬编码字符串“测试”。

我在 maven-jar-plugin JIRA 中找到了关于此的“改进”(MJAR-199 )。随意投票吧!

于 2015-09-22T07:41:10.540 回答