Плагин сборки Maven больше не создает jar-with-зависимости, почему? - PullRequest
5 голосов
/ 03 августа 2011

Это в моем pom.xml:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
    <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <archive>
        <manifest>
            <mainClass>tahrir.TrMain</mainClass>
        </manifest>
    </archive>
</configuration>
</plugin>

Вы можете просмотреть весь pom.xml здесь .

И это вывод когда я запускаю "mvn -DskipTests = true сборка: сборка".

Обратите внимание, что он, кажется, строит
tahrir/target/tahrir-0.0.1-SNAPSHOT.jar
, но не
tahrir/target/tahrir-0.0.1-SNAPSHOT-jar-with-dependencies.jar.

Почему он не создает jar-зависимости, учитывая, чтоэто описание, которое я указал в пом?Раньше это работало правильно, и я не знаю, что могло измениться, чтобы сломать его ...?

Ответы [ 2 ]

5 голосов
/ 03 августа 2011

$ mvn -DskipTests = истинная сборка: сборка

Похоже, что вы напрямую вызываете плагин assembly цели assembly вместо использованияжизненный цикл maven, такой как install или package.

[INFO] --- proguard-maven-plugin: 2.0.4: proguard (по умолчанию) @ tahrir ---

И proguard plugin запускает до , сборка завершена.Он ищет jar-with-dependencies , который еще не существует.

Редактировать: Вы можете попробовать явно привязать ваш плагин сборки к фазе package, добавив следующее:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2.1</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>tahrir.TrMain</mainClass>
            </manifest>
        </archive>
     </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> 
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Затем выполните mvn package или mvn install, пропуская тест по мере необходимости.

3 голосов
/ 03 августа 2011

(не точный ответ, но слишком длинный для комментария)

Я отметил, что все мои проекты включают следующее для плагина сборки:

            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>attached</goal>
                    </goals>
                </execution>
            </executions>

Обратите внимание, что executionsбрат descriptorRefs.

Попробуйте это.

Также:

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

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

[править / исправлять: выполнение, а не выполнение]

...