Maven устанавливает изменения jar
Я использую внешнюю программу, которая создает банку. Код для этой операции следующий:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<property environment="env" />
<property name="appname" value="hellojavaworld" />
<echoproperties />
<exec dir="" executable="respawn.exe" searchpath="true">
<arg value="${basedir}\src\main\java\${appname}.app" />
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Созданный jar создается с помощью respawn.exe, который позже используется в процессе сборки. Я хотел использовать наиболее подходящий способ - установить сторонний jar в локальный репозиторий maven. Для этого используется команда:
mvn install: install-file -Dfile...
Это работает как задумано. Я хотел создать файл pom.xml, который будет использоваться во время сборки (parent-child), поэтому созданный jar будет скопирован в локальный репозиторий maven. Я не могу этого сделать, потому что maven создает собственный jar, который копируется в локальный репозиторий. Вопрос в том, как поменять мавен, чтобы использовать разные банки? Я не хочу копировать jar, который создает maven, потому что он отличается от jar, созданного respawn.exe.
Сравнение банок Эта ссылка отображает разницу этих банок. Вы можете видеть, что jar с правой стороны (локальный репозиторий maven) пропускает папку abc с соответствующими классами.
Вопрос почему?
1 ответ
Maven скомпилирует исходные файлы Java (*.java
) от src/main/java
в target/classes
, Эти классы будут упакованы в банку Maven.
PS Здесь показаны только местоположения Maven по умолчанию.
Глядя на ваш вопрос, кажется, у вас нет исходных файлов Java.