我看到了maven-dependency-plugin这个; 但是,它似乎将所有内容(包括测试jar)复制到目标目录.任何人都知道如何配置此插件以排除测试罐?
fuz*_*BSc 31
迈克在上面的评论中回答了他们自己的问题.我认为Mike的用例与我的类似,我想复制我依赖的所有jar以及我自己的jar,以便创建足以执行程序的目录层次结构,而不将这些依赖项直接包含在我自己的jar中.
实现这一目标的答案是:
<includeScope>compile</includeScope>
Run Code Online (Sandbox Code Playgroud)
该指令进入maven-dependency插件的pom.xml部分.例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>compile</includeScope>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
excludeScope不起作用,因为排除测试会中止构建并排除所有可能的范围.相反,需要调整包含的范围.
Rag*_*ram 21
目前尚不清楚是否要排除具有test 范围或测试相关jar(test 分类器)的jar .在任何一种情况下,都有两个依赖属性:copy-dependencies,可以帮助你.
文档说:被解释的范围是 Maven 看到的范围,而不是 pom.xml 中指定的范围。
In summary:
* runtime scope gives runtime and compile dependencies
* compile scope gives compile, provided, and system dependencies
* test (default) scope gives all dependencies
* provided scope just gives provided dependencies
* system scope just gives system dependencies
Run Code Online (Sandbox Code Playgroud)
根据我的经验,如果您只想使用在项目 pom.xml 文件中指定的编译范围依赖项运行您的类,则必须添加-DincludeScope=runtimejava 系统设置,如下所示:
In summary:
* runtime scope gives runtime and compile dependencies
* compile scope gives compile, provided, and system dependencies
* test (default) scope gives all dependencies
* provided scope just gives provided dependencies
* system scope just gives system dependencies
Run Code Online (Sandbox Code Playgroud)
问候
| 归档时间: |
|
| 查看次数: |
15038 次 |
| 最近记录: |