плагины maven, указанные в pom. xml не выполняются - PullRequest
0 голосов
/ 18 февраля 2020

Я строю свой Java проект и указал 2 подключаемых модуля maven, maven-jar-plugin и maven-dependency-plugin. Я запускаю mvn clean package из командной строки. Исходный код успешно скомпилирован; однако, я никогда не вижу, чтобы плагин зависимости выполнялся. Кроме того, при выполнении чистого пакета mvn --debug я не вижу, чтобы jar-плагин выполнялся с моими заданными параметрами.

Мне нужна помощь по поводу того, почему эти плагины не работают при выполнении mvn clean package.

Фрагмент pom. xml:

К вашему сведению Я не включил все зависимости и groupId, информация о главном классе была изменена, чтобы защитить невинных. Однако структура пом. xml не повреждена.

`<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mygroupId</groupId>
  <artifactId>ssmgr</artifactId>
  <version>0.1</version>

  <name>ssmgr</name>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <mainClass>com.myclass.App</mainClass>
    <dependenciesDirectory>libs</dependenciesDirectory>
  </properties>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.1</version>
          <executions>
            <execution>
              <id>copy-dependencies</id>
              <phase>package</phase>
              <goals>
                <goal>copy-dependencies</goal>
              </goals>
              <configuration>
                <outputDirectory>${project.build.directory}/${dependenciesDirectory}</outputDirectory>
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>false</overWriteSnapshots>
                <overWriteIfNewer>true</overWriteIfNewer>
                <!-- <overWriteIfNewer>true</overWriteIfNewer> -->
                <!--<includeScope>runtime</includeScope>
                <excludeScope>test</excludeScope>
                <useBaseVersion>false</useBaseVersion> -->
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.2.0</version>
          <executions>
            <execution>
              <id>create-jar</id>
              <configuration>
                <archive>
                  <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>${dependenciesDirectory}</classpathPrefix>
                    <mainClass>com.myclass.App</mainClass>
                  </manifest>
                </archive>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <dependencies>
    <dependency>
    </dependency>
  </dependencies>
</project>

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Мне удалось решить эту проблему. Я удалил плагины из-под строфы. Кроме того, для jar-плагина я удалил и строфы. После их удаления банка была создана правильно, и файл манифеста был создан правильно.

0 голосов
/ 18 февраля 2020

Оба плагина определены в <pluginManagement>. pluginManagement используется для определения версий и конфигурации плагинов. Он не добавляет плагины к жизненному циклу. Вам также необходимо определить плагин зависимостей в <plugins> (за пределами pluginManagement).

Плагин Maven Jar фактически неявно включен в жизненный цикл, но вы настраиваете не сам плагин, а выполнение плагин, значения никогда не имеют никакого эффекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...