2016-03-22 6 views
1

У меня есть проект maven с десятью зависимостями. Раньше я упаковать все это в едином банке благодаря maven-assembly-plugin:Как упаковать банку и все зависимости в новой банке с maven

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>create-executable-jar</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>assembly.xml</descriptor> 
       </descriptors> 
       <archive> 
        <manifest> 
         <mainClass>myApp.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Но теперь, я добавил шаг назад. У меня есть плагин, который будет генерировать банку моего приложения. Поэтому я просто хочу, чтобы плагин сборки добавлял зависимости к этой банке. К сожалению, плагин не использует эту банку, но вместо этого, похоже, будет использовать результат из компилятора.

Есть ли способ указать, что я хочу, чтобы плагин использовал ранее сгенерированную jar вместо результата из компилятора?

+0

Что вы имеете в виду * добавляете зависимости к этому банку *? Кто генерирует JAR? Это не так просто. У вас должен быть соответствующий манифест. – Tunaki

+0

В основном, это тот же вопрос, что и http://stackoverflow.com/questions/36150297/how-to-assembly-a-project-after-using-proguard-maven-plugin?noredirect1_comment59948505_36150297, но с другим подходом , Proguard успешно создает запутанную банку, но я не могу понять, как добавить зависимости впоследствии. Я мог бы также добавить зависимости, а затем запутать, но Proguard в этом случае не работает (неразрешенные ссылки ...) – Sharcoux

+0

Это не то, как вы хотите это сделать. Точно нет. Решите проблему в этом другом вопросе, вы боитесь здесь. – Tunaki

ответ

3

Попробуйте использовать плагин maven-shade. Вам нужно что-то вроде:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+1

OMG! Это сработало ! 3 дня я сражаюсь с этим, я злюсь. Я хочу обнять тебя, мужчина! – Sharcoux

+0

просто рад помочь - обниматься не требуется; ^) – Stormcloud