问题描述
我有一个项目使用system范围来指定项目的 WEB-INF / lib
目录中包含的jar文件。此工件不在任何maven存储库中,因此我必须将其作为项目的一部分包含在内。我这样做有以下几点:
I have a project that uses "system" scope to specify a jar file included in my project's WEB-INF/lib
dir. This artifact is not in any of the maven repositories, so I must include it as part of my project. I do so with the following:
<dependency>
<groupId>com.example</groupId>
<artifactId>MySpecialLib</artifactId>
<version>1.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/MySpecialLib-1.2.jar</systemPath>
</dependency>
这对大多数事情都有用。
This has worked great for most things.
但是现在我正在尝试在命令行上运行一些代码(在我的webapp之外,通过 main()
我添加的方法)和 mvn exec:java
无法解析MySpecialLib中的代码,因为它没有包含在运行时类路径中。
But now I'm trying to run some code on the command line (outside of my webapp, via a main()
method I have added) and mvn exec:java
can't resolve code in MySpecialLib because it's not included in the "runtime" classpath.
我该如何:
- 将MySpecialLib添加到运行时类路径
或
- 告诉
mvn exec:java
还要使用系统
类路径?
- tell
mvn exec:java
to also use thesystem
classpath ?
I已经尝试过 mvn exec:java -Dexec.classpathScope = system
,但这会使 runtime
上的所有内容失效。
I've tried mvn exec:java -Dexec.classpathScope=system
, but that leaves off everything that's on runtime
.
推荐答案
使用'compile'范围运行maven exec插件 - mvn exec:java -Dexec.classpathScope =编译
。这将包括系统范围的依赖项。
Use 'compile' scope to run maven exec plugin - mvn exec:java -Dexec.classpathScope=compile
. This will include system-scoped dependencies.
这篇关于Maven exec插件 - 如何包含“系统”类路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!