Java 将自定义Maven JAR添加到专用服务器位置

Java 将自定义Maven JAR添加到专用服务器位置,java,maven,jar,Java,Maven,Jar,我的团队正在使用Maven进行构建,我得到了一些JAR,用于软件正在使用的工具。发送jar的公司是一家非Maven商店,所以他们只发送原始的.jar文件。在我的本地代码中,我使用以下样式为这些JAR创建了一些Maven依赖项: <dependency> <artifactId>ThirdParty</artifactId> <groupId>made.up.url.org</groupId> <versio

我的团队正在使用Maven进行构建,我得到了一些JAR,用于软件正在使用的工具。发送jar的公司是一家非Maven商店,所以他们只发送原始的.jar文件。在我的本地代码中,我使用以下样式为这些JAR创建了一些Maven依赖项:

<dependency>
    <artifactId>ThirdParty</artifactId>
    <groupId>made.up.url.org</groupId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>C:/pathToTheJars/ThirdPartyJarOne.jar</systemPath>
</dependency>

第三方
made.up.url.org
1
系统
C:/paththejars/ThirdPartyJarOne.jar
在所有的开发过程中,我们需要加载大约25个这样的定制jar文件。其他开发人员可能不像我那样拥有这些文件,这些MVN POM被签入到源代码管理中,以便在开发之外的其他环境中使用


有没有办法创建一个私有的“Maven Repo”,这样我们就可以在内部托管这些需要的文件,然后让路径和URL指向我们的私有位置?这将允许我们将POM检查到源代码控制中,使JAR脱离源代码控制,让Maven成为Maven,并且仍然使用我们不想“共享”的第三方JAR。

如果您的团队使用Nexus,您可以在那里部署非Maven JAR。您可以为这些jar提供任何groupId、artifactId和版本

mvn deploy:deploy-file -DgroupId=some.groupId -DartifactId=some.artifactId -Dversion=1.0 -Dpackaging=jar -Dfile=TheNonMavenJarFile.jar -DrepositoryId=YourRepoID -Durl=UrlToYourRepository
部署之后,每个人都可以使用JAR作为正常的依赖项

<dependency>
    <groupId>some.groupId</groupId>
    <artifactId>some.artifactId</artifactId>
    <version>1.0</version>
</dependency>

some.groupId
一些
1

是的,你可以。不过,解释起来有点麻烦,因此您应该研究一下,哪些方面解释了如何在不需要Nexus的情况下设置内部存储库。
不过,使用Nexus将为您提供大部分工作。

您也可以将github用作repo,前提是您可以创建私有存储库(除非您希望您的repo是公共的)

关于如何设置它的详细信息,请参见此问题


有一个非常好的存储库软件:但我认为它是付费的。或者你甚至可以使用github作为repo,你可以使用OSS版本的Nexus…或者Artifactory或Archiva…我认为你还必须添加一个
标记,否?取决于JAR部署在哪个存储库。例如,它们可以部署到已经在m2.settings中配置好的存储库中。@Teemu我没有听说过Nexus,所以我怀疑我们是否在使用它。什么是Nexus?你能不能链接到他们的网站,或者有完整的公司名称或其他什么,这样我就可以更好地搜索它了。@Walls-its sonatype.org/nexus