【发布时间】:2016-01-09 08:49:03
【问题描述】:
我有一个项目,我想在当前项目的后期执行阶段调用 M2 repo 中的另一个 Jar 文件。
我的 POM 的示例骨架
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>exec-one</id> <phase>verify</phase> <configuration> executable>java</executable> <arguments> <argument>-jar</argument> <argument>JarToInvoke.jar</argument> </arguments> <**workingDirectory**>/C:/path to repo</workingDirectory> </configuration> <goals> <goal>exec</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>GroupId of JarToInvoke</groupId> <artifactId>JarToInvoke</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> </plugin> </plugins>
我尝试使用 maven-exec-plugin,但遇到以下问题;
我需要在哪里指定 JarToInvoke 依赖项?作为项目依赖还是作为 exec-plugin 依赖?
通过硬编码工作目录(/C:/repo 的路径),我可以调用 JarToInvoke 工件。但这不是一个好的解决方案,因为最后这个项目应该在任何具有不同操作系统的 m/c 中运行。那么如何让 exec-plugin 在项目的 M2 存储库中搜索 JarToInvoke 工件(默认类路径)?
3.在工作目录中对 M2 存储库路径进行硬编码时,我能够调用 JarToInvoke 工件。但是在运行 JarToInvoke 工件时,它会引发另一个依赖问题,无法找到 JarToInvoke 的一些 log4j 依赖项。我将 JarToInvoke 制作为带阴影的 jar,它按预期工作。但这不是一个永久或好的解决方案(因为阴影 jar 大小为 35 MB)。如何指示 exec-plugin 在 M2 repo 中查找依赖的 Jars。
请分享您的建议。提前致谢。
【问题讨论】:
标签: maven