我有一个项目使用“系统”范围来指定一个jar文件,包括在我的项目的WEB-INF/lib
目录中。这个工件不在任何maven仓库中,所以我必须将它包含在我的项目中。我这样做如下:Maven exec插件 - 如何包含“系统”类路径?
<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>
这对大多数事情都很好。
但现在我试图运行在命令行中的一些代码(我的web应用程序之外,通过main()
方法我已经加入),因为它不是在“运行”收录mvn exec:java
无法解决MySpecialLib代码类路径。
如何,我不是:
- 添加MySpecialLib到运行时类路径
或
- 告诉
mvn exec:java
也使用system
类路径?
我试过mvn exec:java -Dexec.classpathScope=system
,但是这样就会遗漏所有runtime
。
它添加到你的本地回购的问题是,它的视线,心不烦 - 容易忘记它是你添加到你的版本的自定义内容,并且容易丢失。您的团队中的其他开发人员也必须被指示执行相同的手动安装。 Nexus是一个巨大的解决方案,它应该是一个简单的问题 - 为您的构建添加定制的工件。然而,我同意你在受伤的世界。 :-) – 2011-03-13 14:11:34
我已经写了makefiles脚本安装到本地回购,使其令人难忘。另外,在我看来,免费联结是一个小锤子,提供了丰富的有用功能。 – bmargulies 2011-03-13 15:27:30