[我遇到了一个情况,我有一个行家专家,其中有几个方面和方法...我需要在需要它们的其他一些项目中使用相同的项目类和方法。
阅读了一些有关Git子模块和Git子树的信息,以及完成它的其他方法之后。我决定导出具有相关性的Jar文件,然后将其复制到“ $ {basedir} / lib /”子目录中的所有其他项目中。这样,对于QA团队中的所有开发人员来说,它就足够简单(我们不是经验丰富的开发人员,因为我们来自QA界),而且我可以控制他们在所有项目中使用相同的库。
我使用组装Maven插件导出到Jar文件,并将其添加到第一个存储库中的我的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
我在'target'目录中有Jar文件,该文件已复制到所有其他存储库。在每个存储库的“ lib”目录中。
然后在其他仓库的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之前,您已经建立了一些基础结构:
用于工件(震击,战争等)的Nexus或Artifactory服务器
一个类似Jenkins的构建服务器。
然后您用mvn clean deploy
在Jenkins上构建jar(没有maven程序插件之类的东西)。然后它们可以在Nexus / Artifactory中使用。
如果开发人员的settings.xml
指向正确的Nexus / Artifactory,则只需添加
<dependency>
<groupId>myDep</groupId>
<artifactId>myDep</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
到他们的pom.xml
,而不指定任何路径或在周围复制任何内容。然后,Maven将竭尽全力解决Nexus / Artifactory对这种依赖性的问题。