У меня есть Apache Archiva Repo, который я настроил для обработки двоичных зависимостей для проекта Maven, над которым я работаю; однако, по-видимому, проект также имеет некоторые зависимости от локального исходного кода стороннего производителя (Unsure of Distribution License). Есть ли способ, которым я могу разместить этот источник где-то, что Maven может извлечь его из того, когда нужно сделать сборку? Обычно источник хранится в SCM, но это не похоже на правильное решение для исходных файлов java, которые я использую только для компиляции (требуется только во время компиляции), но не хочу в моем основном «/ src», каталог. Усовершенствования и передовые методы оценены, я довольно новичок в разработке Java и Maven.Как мне указать Maven на Java Sorce Dependencies?
ответ
Возможные решения:
- убедит проект 3-й партии, чтобы развернуть файл JAR с классом файлов в Maven Central (если Open Source)
- Убедите проект 3-й партии, чтобы развернуть файл JAR с файлами классов к вашему Apache Archiva Repo (если закрытый источник и в той же организации)
- Убедить сторонний проект развернуть JAR с файлами классов в собственный менеджер хранилища Maven и зарегистрировать этот репо в экземпляре Apache Archiva (если Закрытый источник и не в та же организация; не уверен, что Apache Archiva предоставляет такую функцию)
- Создайте JAR с помощью файлов классов самостоятельно и разверните их в своем репозитории Apache Archiva. Затем объявить зависимость к нему, как обычно
Итак, для разъяснения: Зависимости всегда необходимо упаковывать? (Например, в .jar) –
@BrandonSnider Да, по крайней мере, с готовыми функциями (jar, pom, ear, war, ...). Однако я не уверен, что поддерживает пользовательские компоненты. – Puce
Вы можете создать файл Jar исходного кода стороннего производителя и поместить его под свою/lib папку и предоставить зависимость в вашем файле pom.xml. Теперь, когда вы будете создавать свой код, зависимости будут захватываться от конкретного jar файл.
<dependency>
<groupId>--grp id name--</groupId>
<artifactId>--artifact id--</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>--${basedir}\lib\{name}.jar--</systemPath> (Path of jar)
</dependency>
</dependencies>
* Удалить «- -» при осуществлении.
Вы можете использовать Build Helper Plugin, например:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>path to where your 3rd party source code is present</source>
...
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
ли вам нужен этот исходный код только во время компиляции? – Puce
@Puce Да, это правильно. –