Java 如何从包阶段排除maven测试范围?

Java 如何从包阶段排除maven测试范围?,java,maven,Java,Maven,我在mvn包上的分隔符文件夹中收集所有依赖项库,如下所示: <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>${maven.copy.plugin}</version> <executions> <execution>

我在
mvn包
上的分隔符文件夹中收集所有依赖项库,如下所示:

    <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>${maven.copy.plugin}</version>
        <executions>
            <execution>
                <id>copy-dependencies</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>

maven依赖插件
${maven.copy.plugin}
复制依赖项
包裹
复制依赖项
${project.build.directory}/lib/
问题:这还包括
test
库。 如何排除这些LIB?

使用仅包含
运行时
作用域依赖项:

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>${maven.copy.plugin}</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                <includeScope>runtime</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>


).

第一个问题:为什么要这样做?这样做的目的是什么?创建EAR/WAR/?您没有阅读手册吗@khmarbaise我的目标是创建一个可运行的jar,其中没有打包所有库,而是在执行目录中的一个单独文件夹中。当项目本身更新时,减少文件大小,但不改变依赖项(必须经常通过网络复制jar项目)。为此,您可以使用带有适当描述符的maven assembly插件。但我建议创建一个单独的zip文件,其中包含所有这些内容(带有脚本的bin文件夹;带有jar的lib文件夹,可能还有一个带有某种配置的etc文件夹)。这可以通过使用appassembler maven插件来实现……但是如果我可以通过maven实现这一简单的功能(而且它已经工作了!),为什么我要使用另一个配置工具呢?我尝试过,但出现了以下错误:
无法排除测试范围,这将排除所有内容。->[帮助1]
Hm,我发现这可能是不可能的:对,您可以使用问题注释中提到的解决方法:主要包括运行时范围依赖项。