maven как установить jar с классификатором, а не установить по умолчанию - PullRequest
1 голос
/ 16 марта 2012

У меня есть такой пом. все, что я пытаюсь сделать, это установить файл как 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 ]

1 голос
/ 17 марта 2012

Наилучшим способом может быть замена выполнения плагина jar по умолчанию, например,

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

Таким образом, у вашего артефакта по умолчанию будет только требуемый классификатор, и обе установки и deploy будут делать правильные вещи по умолчанию.

Конечно, вам не следует дополнительно изменять finalName , так как плагин jar добавит к нему классификатор.

Примечание: хотя это отвечает на поставленный вопрос, я согласен с Манфредом Мозером в том, что то, что вы хотите сделать, не выглядит хорошей идеей.

0 голосов
/ 17 марта 2012

Вы не должны использовать классификатор для сигнализации о том, что это тестовый артефакт. Вместо всего вашего взлома finalName и реконфигурации плагина jar просто измените artifactId на leews-test

Таким образом, становится ясно, что это тестовый артефакт из имени, и его зависимость может использовать его без необходимости в классификаторе, и все будет работать "из коробки".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...