У нас есть ряд сторонних зависимостей, которые нигде не размещены. Для каждого из них у нас есть файл jar, который мы хотели бы установить и / или развернуть в нашем репозитории. Некоторые из файлов jar имеют свои собственные зависимости, и мы также должны их объявить.
Мы создали файлы pom.xml для каждого файла jar, которые объявляют groupId, artifactId, зависимости и т. Д. Все эти файлы pom.xml имеют общий родительский pom, который объявляет некоторую общую информацию (например,
и
).
Я хотел бы иметь возможность установить или развернуть эти зависимости с помощью чего-то столь же простого, как mvn install
и mvn deploy
(или, может быть, mvn install: install-file
и mvn deploy: deploy-file
) и иметь все необходимые свойства для этих команд ( artifactId
, repositoryId
и т. д.) быть читать из файлов pom.xml.
Чтобы заставить это работать, по крайней мере для развертывания, я попытался поместить следующее в родительский pom:
<build>
<plugins>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.4</version>
<configuration>
<file>${jarfile}</file>
<pomFile>pom.xml</pomFile>
<repositoryId>our-id</repositoryId>
<url>our-url</url>
</configuration>
</plugin>
</plugins>
</build>
, а затем каждый из дочерних pom определил jarfile
собственности. Это позволяет мне запустить mvn deploy: deploy-file
для развертывания всех дочерних артефактов pom. Предположительно, я мог бы сделать что-то подобное, чтобы заставить работать mvn install: install-file
.
Но при таком подходе я не могу освободить родительский pom (что я должен сделать, поскольку дочерние pom зависят от на нем), и если я попытаюсь mvn release: выполнить
на родительском pom, я получаю такие ошибки, как:
Cannot override read-only parameter: pomFile
Мне кажется, что я ' Я, наверное, ошибаюсь. Все, что я действительно хочу сделать, это:
mvn install
или mvn deploy
без необходимости указывать все эти сложные свойства командной строки Как я могу это сделать лучше всего?
Изменить: Выше прояснили, что в идеале я хотелось бы иметь возможность запускать что-то столь же простое, как mvn install
или mvn deploy
, и не указывать свойства в командной строке.