maven如何使用分类器安装jar而不安装默认jar

时间:2012-03-16 19:46:07

标签: maven

我有一个像这样的pom。我想要做的就是将文件安装为llews-1.0-test.jar而不是llews-1.0.jar。虽然这个pom安装了一个jar作为llews-1.0-test.jar,但它也安装了llews-1.0.jar(默认)一个。如何禁用默认安装?

<build>
            <finalName>llews-${project.version}-test</finalName>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.3.1</version>
                    <executions>                        
                        <execution>
                            <id>install test</id>
                            <phase>install</phase>
                            <goals>
                                <goal>install-file</goal>
                            </goals>

                            <configuration>
                                <file>${project.build.directory}\${project.build.finalName}.jar</file>
                                <pomFile>${basedir}\pom.xml</pomFile>
                                <classifier>test</classifier>
                            </configuration>
                        </execution>
                    </executions>                   
                </plugin>
</build>

2 个答案:

答案 0 :(得分:1)

最好的方法可能是替换默认的jar插件执行,比如这个

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
      <execution>
        <id>default-jar</id>
        <configuration>
          <classifier>test</classifier>
        </configuration>
      </execution>
    </executions>
  </plugin>

这样你的默认工件就会拥有所需的分类器,默认情况下,安装 deploy都会做正确的事情。

当然你不应该另外修改 finalName ,因为jar插件会将分类器添加到它。

注意:虽然这回答了给出的问题,但我同意Manfred Moser的看法,你想做的事情看起来并不是一个好主意。

答案 1 :(得分:0)

您不应该使用分类器来发信号通知它是一个测试工件。而不是所有的finalName hack和jar插件重新配置只需将artifactId更改为leews-test。

很明显,这是一个来自名称的测试工件,对它的依赖可以使用它而不需要分类器,所有东西都可以开箱即用。