缺少 Maven 程序集插件依赖项 jar

Maven assembly plugin dependency jars are missing

我在尝试创建可分发存档时使用 maven 程序集插件时遇到问题。一切都是 工作正常,除了存档 lib 目录中缺少一些依赖项 jar。例如 hamcrest-core.jar、xnio-nio-3.3.6.Final.jar、objenesis-2.5.jar 和其他一些罐子不 added.Is 没有任何理由不包括在内? maven-dependency-plugin 包括 target/lib 内的所有依赖 jar,没关系。

这是我 pom.xml

里面的东西
  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <id>copy</id>
            <phase>install</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>
                    ${project.build.directory}/lib
                </outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <groupId>org.apache.maven.plugins</groupId>
    <version>3.1.0</version>
    <executions>
      <execution>
        <id>online-store</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>lib/</classpathPrefix>
                    <mainClass>com.online.store.Main</mainClass>
                </manifest>
            </archive>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptors>
                <descriptor>src/assembly/assembly.xml</descriptor>
            </descriptors>
        </configuration>
      </execution>
    </executions>
</plugin>

这是我在 assembly.xml

中的内容
    <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
   <id>online-store</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <!-- some file sets -->
    </fileSets>    
    <dependencySets>
        <dependencySet>
        <scope>compile</scope>  
        <includes>
                    <include>*:jar:*</include>
            </includes>
        <outputDirectory>/online-store/lib</outputDirectory>
    </dependencySet>
    </dependencySets>
</assembly>

您可以在范围测试中包含另一个依赖集。

例如:

<assembly> 
    ...
    <dependencySets>
        <dependencySet>
        <scope>compile</scope>  
        <includes>
               <include>*:jar:*</include>
            </includes>
        <outputDirectory>/online-store/lib</outputDirectory>
    </dependencySet>
    <dependencySet>
        <scope>test</scope> 
        <includes>
               <include>*:jar:*</include>
            </includes>
        <outputDirectory>/online-store/lib</outputDirectory>
    </dependencySet>
  </dependencySets>
</assembly>