【发布时间】:2020-08-07 08:23:28
【问题描述】:
我遇到了一种情况,我有一个包含多个类和方法的 maven 项目......我需要在需要它们的其他项目中拥有相同的项目类和方法。
在阅读了一些关于 Git 子模块、Git 子树以及其他实现这一点的方法之后。我决定导出一个带有其依赖项的 Jar 文件,并将其复制到“${basedir}/lib/”子目录中的所有其他项目中。这样我就可以让我的 QA 团队中的所有开发人员保持足够简单(我们不是很有经验的开发人员,因为我们来自 QA 世界),而且我可以控制他们所有人在所有项目中都使用相同的库。
我使用程序集 maven 插件导出到 Jar 文件,在第一个 repo 中将其添加到我的 POM 文件中:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
然后运行
$ mvn clean compile assembly:single
我在“目标”目录中有 Jar 文件,我将其复制到所有其他存储库。在每个 repo 的“lib”目录中。
然后在其他 repos 的 POM 文件中,我添加到他们的 POM 依赖项部分:
<dependency>
<groupId>myDep</groupId>
<artifactId>myDep</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/lib/myDep-1.0-SNAPSHOT-jar-with-dependencies.jar</systemPath>
</dependency>
问题是我无法弄清楚如何在我的类中导入 Jar 以使用我需要从这个导入的 Jar 中使用的方法。正如我试图导入一样
import myDep.*
但它不起作用。
你能指出我正确的方向吗?非常感谢!
【问题讨论】:
-
也许你需要Maven的multiple modules特性。
标签: java maven jar maven-assembly-plugin