2016-09-13 9 views
1

У меня есть Apache Archiva Repo, который я настроил для обработки двоичных зависимостей для проекта Maven, над которым я работаю; однако, по-видимому, проект также имеет некоторые зависимости от локального исходного кода стороннего производителя (Unsure of Distribution License). Есть ли способ, которым я могу разместить этот источник где-то, что Maven может извлечь его из того, когда нужно сделать сборку? Обычно источник хранится в SCM, но это не похоже на правильное решение для исходных файлов java, которые я использую только для компиляции (требуется только во время компиляции), но не хочу в моем основном «/ src», каталог. Усовершенствования и передовые методы оценены, я довольно новичок в разработке Java и Maven.Как мне указать Maven на Java Sorce Dependencies?

+0

ли вам нужен этот исходный код только во время компиляции? – Puce

+0

@Puce Да, это правильно. –

ответ

2

Возможные решения:

  • убедит проект 3-й партии, чтобы развернуть файл JAR с классом файлов в Maven Central (если Open Source)
  • Убедите проект 3-й партии, чтобы развернуть файл JAR с файлами классов к вашему Apache Archiva Repo (если закрытый источник и в той же организации)
  • Убедить сторонний проект развернуть JAR с файлами классов в собственный менеджер хранилища Maven и зарегистрировать этот репо в экземпляре Apache Archiva (если Закрытый источник и не в та же организация; не уверен, что Apache Archiva предоставляет такую ​​функцию)
  • Создайте JAR с помощью файлов классов самостоятельно и разверните их в своем репозитории Apache Archiva. Затем объявить зависимость к нему, как обычно
+0

Итак, для разъяснения: Зависимости всегда необходимо упаковывать? (Например, в .jar) –

+0

@BrandonSnider Да, по крайней мере, с готовыми функциями (jar, pom, ear, war, ...). Однако я не уверен, что поддерживает пользовательские компоненты. – Puce

1

Вы можете создать файл 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> 

* Удалить «- -» при осуществлении.

0

Вы можете использовать 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>