2012-04-11 2 views
1

У меня есть сторонние банки, которые не находятся в репозитории, которые мне нужно установить при выполнении сборки. Я пытаюсь использовать муравьиный плагин для копирования сгенерированного jar и pom из папки моих проектов/lib в локальный репозиторийmaven run maven install from inside pom

my src/main/lib dir содержит следующую структуру папок com/oracle/ojdbc14/10.2/ojdbc. баночка, ojdbc.pom

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <copy todir="${settings.localRepository}" > 
           <fileset dir="${basedir}/src/main/lib/" includes="**"/> 
          </copy> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Но когда я запустить MVN установить, он не со следующими сообщ

Failure to find com.oracle:ojdbc14:jar:10.2.0.3.0 

почему команда копирования из муравьев (проверки фазы) выполняется до любых проверок производится в отношении

ответ

3

Получить менеджер хранилища и установить артефакт там. Все остальное - уродливый хак, который намного более инвазивен и хлопот, чем установка и использование менеджера хранилища. Посмотрите на Nexus, Artifactory или Archiva и получите все преимущества от использования его, как улучшенная производительность сборки, простота использования сторонних библиотек и возможность совместного использования артефактов внутри.

3

Извините, но это полностью отстой. Если вы действительно не можете развернуть эту стороннюю вещь для своего внутреннего или частного репозитория Maven, лучший способ сделать такую ​​вещь, которую я нашел до сих пор, - это использовать цель install:install-file со всеми этими банками. Для этого мы создали 2 сценария оболочки (для Windows и Linux) и разделили их с помощью SCM в каталоге bootstrap (или примерно так). Обратите внимание, что каждый новый разработчик должен сделать это один раз, потому что эти артефакты затем разрешимы в локальном репозитории Maven.

Посмотрите на это подробности о install:install-file цели: http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

+0

Основываясь на том, что вы написали, почему бы не установить диспетчер репо и установить артефакты там только один раз для всех разработчиков ... так что каждый разработчик может начать работать без проблем .. – khmarbaise