2013-10-14 3 views
0

Я использовал плагин maven-dependency-plugin для распаковки-зависимостей.Unzip jars from zip dependency :: Android project

Я могу видеть распакованные банки (те, которые необходимы на этапе компиляции) под мишень/зависимость при запуске

МВН зависимость: распаковка-зависимостей

Но вместо этого, если я бегу

mvn clean install

Я получаю ошибки компиляции.

Как я могу сообщить maven, что эти распакованные банки используются при компиляции и установке?

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.7</version> 
       <executions> 
        <execution> 
         <id>unpack-dependencies</id> 
         <phase>package</phase> 

         <goals> 
          <goal>unpack-dependencies</goal> 
         </goals> 
         <configuration> 
          <includeGroupIds>com.group</includeGroupIds> 
          <includeArtifactIds>zippedArtifact</includeArtifactIds> 

          <includes>x.jar,y.jar</includes> 
          <overWriteIfNewer>true</overWriteIfNewer> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

ответ

0

Если вы просто объявляете обычную зависимость кода, просто объявляйте зависимость. Не используйте плагин вообще. Просто скажите,

<dependency> 
    <groupId>...</groupId> 
    ... 
</dependency> 

Maven добавит эту банку в ваш путь к классу. Вам не нужно его распаковывать.

Если кто-то действительно опубликовал артефакт Maven, содержащий несколько файлов jar двоичных файлов, Maven не имеет мгновенного решения. Вам понадобится отдельный модуль Maven, который распаковывает их с помощью плагина зависимостей, а затем использует параметр «attach» плагина-помощника сборки, чтобы превратить каждый в артефакт с классификатором, а затем объявить зависимости от них. Возможно, было бы проще просто переиздать эти отдельные банки вашему локальному менеджеру репозитория в соответствии с их собственными координатами.

Если вам нужно вытащить другие вещи из какого-либо ресурса, например файлы данных или дополнительный исходный код, объедините плагин зависимостей с the build helper maven plugin. Этот плагин имеет цели добавить дополнительные каталоги источников или ресурсов, которые вы создали с помощью другого плагина.

Если вам по какой-то причине необходимо комбинировать свои зависимости в свой собственный файл jar, см. Плагин Maven Shade. Я подозреваю, что экосистема плагинов Android имеет лучшее решение для того, чтобы ваши зависимости могли путешествовать с вашим кодом, но если нет, то тени есть.

+0

Мне нужно использовать баночки, и для чего нужно использовать maven-dependency-plugin, если ему еще нужно идти только с источниками? – nish1013

Смежные вопросы