2014-12-24 4 views
0

Это должно было быть легко, но я испытываю странное поведение от подключаемого модуля maven-install.Как я могу mvn: установить затененный maven artifact

Мне нужно было переупаковать некоторые общие зависимости в мой проект, чтобы избежать конфликтов зависимостей. Для этой цели я использовал тень плагин с перемещениями сконфигурированных:

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>do_shade</id> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <createDependencyReducedPom>true</createDependencyReducedPom> 
         <shadedArtifactAttached>false</shadedArtifactAttached> 
         <createSourcesJar>true</createSourcesJar> 
         <relocations> 
          <relocation> 
           <pattern>com.google.common</pattern> 
           <shadedPattern>com.myproject.google.common</shadedPattern> 
          </relocation> 
          <relocation> 
           <pattern>org.apache.commons</pattern> 
           <shadedPattern>com.myproject.commons</shadedPattern> 
          </relocation> 
         </relocations> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

плагиной тень сделала это задание правильно и Произведенным затененным артефакт com.myproject-MyProject-.jar и зависимого пакеты восстановленного ПОМ файла. Но затем установите плагин, установив оригинальный артефакт (без зависимостей) вместо затененного.

Более того, перед тем, что установить плагин проблема мой CI сервер (Дженкинс) построен проект и правильно опубликовал заштрихованная артефакт и зависимость сводится POM к хранилищу связующей (!!). Итак, теперь я загружаю артефакт из nexus, у меня будут правильные банки в моем локальном репозитории, но если я буду использовать установочный плагин, банки не будут хорошими.

У кого-нибудь были подобные проблемы? Кто-нибудь знает, как их разрешить?

ответ

0

Чтобы ответить на мой собственный вопрос, проблема заключалась в том, что я позже обозначил зависимости, которые будут затенены, как предусмотрено, чтобы они не проникали транзитно в мои другие проекты. Это заставило теневой плагин не включать их в затененную банку.