删除Maven jar的测试分类器:test-jar目标?

时间:2015-09-22 07:24:14

标签: maven jar maven-jar-plugin

我已将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.jarARTIFACT.tests.jar。前者正在运作,但后者以ARTIFACT.tests-tests.jar代替。有没有办法调整上面的配置来删除-tests分类器?

1 个答案:

答案 0 :(得分:1)

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

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

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

并且getClassifier()方法返回硬编码的字符串&#34;测试&#34;对于test-jar目标。

我找到了一个&#34;改进&#34; (MJAR-199)在maven-jar-plugin JIRA中有关于此。随意投票吧!