Как установить тестовую банку в maven?
У меня есть тестовая банка, которую я хотел бы установить. Я не уверен, есть ли другой способ установить тестовые банки, например, определение свойства, которое сообщает maven, что это тестовая банка.
Кроме того, groupId и artifactId совпадают с другим банком, для которого выполняется тест.
Пока так выглядит моя команда установки:
mvn install:install-file -DgroupId=com.example -DartifactId=example -Dpackaging=jar -Dversion=1.2.3 -Dfile=example-test.jar -DgeneratePom=true
Итак, как именно я должен установить тестовую банку? Я знаю, что должно быть что-то сказать maven, это тестовый баннер, так как groupId и artifactId совпадают с другим банком (который был бы jar, который example-test.jar является проверкой).
Ответы
Ответ 1
Вам не нужно устанавливать их вручную. Maven сделает это для вас при выполнении:
mvn clean install
Вам нужна конфигурация по строкам:
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
Затем, позже в вашем другом модуле, где вам нужно будет его использовать, вам нужно определить тип зависимости как:
<dependency>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
<version>1.2.3</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Ответ 2
mvn install:install-file
-DgroupId=com.example
-DartifactId=example
-Dversion=1.2.3
-Dclassifier=tests
-Dpackaging=test-jar
-Dfile=example-1.2.3-tests.jar
Ответ 3
Вы помещаете свой тестовый код в тот же проект, что и ваш обычный код, под /src/test/java. Maven заботится о том, чтобы не включать тестовый код в упакованную банку. Если у вас есть зависимости, которые используются только для модульного тестирования (например, mockito, junit и т.д.), Вы предоставляете им "тест" в зависимостях maven, и они будут доступны для модульных тестов, но не включены в фактическую банку.
Ответ 4
Я думаю, вы, возможно, пропустили флаг generatePom, я получил ту же ошибку, но, наконец, ниже работал
mvn install:install-file
-Dfile=c:/primo/primo-1.0.0-SNAPSHOT.jar
-DgroupId=uk.bl.primo
-DartifactId=primo
-Dversion=1.0.0
-Dpackaging=jar
-DgeneratePom=true