首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >帮助我理解如何使maven项目w/ non jar依赖关系可供其他人使用。

帮助我理解如何使maven项目w/ non jar依赖关系可供其他人使用。
EN

Stack Overflow用户
提问于 2010-05-31 17:45:27
回答 2查看 677关注 0票数 1

我正在学习maven (以及java打包和发行),我正在进行一个新的oss项目的实践。这里是我的情况,当然都是java:

我的主要项目是基于ProjectA的github存储库中的maven。我还在github中创建了一个基于maven的实用程序项目: ProjectB。ProjectA依赖于我修改过的一个项目,该项目最初来自一个基于google代码的蚂蚁存储库ProjectC。

因此,如何设置ProjectA的构建,以便有人可以下载ProjectA.jar并使用它,而不需要为ProjectB和ProjectC安装jars,以及如何设置构建,以便有人可以签出ProjectA并只运行'mvn包‘以进行完整编译?

(此外,我应该如何处理修改后的ProjectC版本?将类文件直接包含到ProjectA中,还是将项目分解为可以作为maven依赖项使用的东西?)

我一直在阅读诸如这个问题这个问题之类的链接,但我不清楚这些链接与我的特定环境有何关系。因此,任何帮助都将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-31 18:52:38

因此,我如何设置ProjectA的构建,以便有人可以下载ProjectA.jar并使用它,而不需要为ProjectB和ProjectC安装jars。

假设ProjectA是JAR,您可以创建一个可执行的JAR,该JAR可以将依赖绑定到Maven组装插件 (和预定义的jar-with-dependencies描述符)或Maven Shade插件

我如何设置构建,使某人可以签出ProjectA,并只运行'mvn包‘的完整编译?

您必须将依赖关系deploy到可以通过HTTP读取的存储库,并在pom.xml中声明该存储库。AFAIK,git-集线器不提供任何设施。但是任何带有FTP访问(或者更好的,scp)的网络托管服务都应该做到这一点。如果您的项目是开源的,另一种选择是使用Sonatype的开放源码软件储存库托管服务。

以防万一,你可能想读这篇博客文章,但你不会学到更多的东西。

最简单的方法仍然是将这3个项目组织为一个多模块的maven项目,并构建所有模块。

此外,我应该如何处理修改后的ProjectC版本?

从模块化的角度来看(假设您找到了关于存储库的上述部分的解决方案),将其作为一个单独的模块当然是有意义的,特别是如果有机会在项目之外使用ProjectC。

票数 1
EN

Stack Overflow用户

发布于 2010-05-31 18:48:07

您必须从附加的依赖项中发布代码。有两种选择:

  1. 使用maven阴影插件创建一个包含B和C jars所有内容的maven工件,并在您自己的G/A/V坐标下发布它。
  2. 使用maven部署插件在您自己的G/A/V坐标下发布B和C副本,就像您将发布自己的代码一样。不同的伪造有不同的政策,但如果你遵守B和C的许可证,你应该是好的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2945148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档