2016-03-29 5 views
0

У меня есть немного project, написанное в Котлине. Когда я бегу clean compile assembly:single install, я получаю следующее сообщение об ошибке:Почему я не вижу «дескрипторов сборки». ошибка при создании этого проекта?

Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:single 
(default-cli) on project alma-econsim: Error reading assemblies: No assembly 
descriptors found. -> [Help 1] 

Мой jar-with-dependencies.xml находится в src/main/assembly и ссылки в pom.xml так:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2-beta-5</version> 
    <executions> 
     <execution> 
      <id>assembly</id> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <phase>package</phase> 
      <configuration> 
       <descriptors> 
        <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor> 
       </descriptors> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

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

ответ

9

Сначала используйте UpToDate версию maven-assembly-plugin и не древняя версия ... Кроме того, вы должны вызвать его через mvn clean package потому что вы связали Maven-сборочный-плагин для фазы цикла в package жизни ... если вы пытаетесь сделать mvn ... assembly:single вы не зовем жизненный цикл ... Помимо этого вы хотели бы использовать jar-with-dependencies дескриптор, чем вы должны сделать это так:

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <!-- NOTE: We don't need a groupId specification because the group is 
      org.apache.maven.plugins ...which is assumed by default. 
     --> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     [...] 
</project> 

кроме того, если вы звоните Maven, как это:

mvn clean compile assembly:single install 

Чем вы называете фазы компиляции дважды, вызывают только просто:

mvn clean install 

достаточно. Я могу порекомендовать прочитать build life doc.