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,我发现这可能是不可能的:对,您可以使用问题注释中提到的解决方法:主要包括运行时范围依赖项。