2010-11-04 3 views
16

Я использую плагин сборки maven для упаковки файла jar. Но когда я запускаю mvn package, maven всегда запускает [jar: jar {исполнение: default-jar}] для создания файла jar по умолчанию. Итак, у меня будет 2 файла jar (один из которых создан плагином сборки, а другой - maven jar, который я не хочу создавать). Как отключить выполнение: default-jar.отключить выполнение: default-jar

in my pom.xml, я использую: <packaging>jar</packaging>. Я не хочу менять его на <packaging>pom</packaging>.

ответ

33

(...) Таким образом, у меня будет 2 фляга файлов (один созданная сборки плагин и один, созданный maven jar, который я не хочу создавать).

Похоже, вы делаете довольно сложные вещи. Возможно, Maven - это не подходящий инструмент в вашем случае.

Как отключить выполнение: default-jar.

Вы можете установить <phase> соответствующего исполнения к чему-то неизвестному, как none:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>default-jar</id> 
     <phase>none</phase> 
     </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> 
     <!-- this is used for inheritance merges --> 
     <phase>package</phase> 
     <!-- append to the packaging phase. --> 
     <goals> 
      <goal>single</goal> 
      <!-- goals == mojos --> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Это похоже на работу до тех пор, как вы предоставляете что-то еще, чтобы быть установлен, как в сборе (Я тестировал только install). Но, конечно, это хак.

+0

Это взломать, но это здорово знать этот хак. Благодаря! (+1) –

+0

КТО, ты когда-нибудь спишь? Вы тоже в CET, не так ли? –

+0

@seanizer: LOL. Да, я :) И нет, я в настоящее время нет, я двигаюсь. –

3

Пока не прямой ответ на вопрос, можно исключить банку созданной Maven банкой с использованием <useProjectArtifact>false</useProjectArtifact>

+0

Thanks Raghuram – David

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