Maven仓库存档,包括构建/插件依赖项。

3

我的客户希望能够从源代码构建我们的项目,但不想连接到互联网获取构建所需的任何依赖项。请注意,这将包括插件依赖项。

我的建议是,我们向客户提供一个包含所有依赖项的归档文件,以正确的Maven仓库文件结构为基础,并包含校验和和元信息。然后他们可以将其用作内部maven仓库。

我已经配置了maven-assembly-plugin来创建这样的归档文件,但它并没有包含他们的Maven在构建过程中所需的所有构建/插件依赖项。

有人知道如何在归档文件中包含构建时依赖项,或者可以建议另一种方法来获取这些依赖项并将它们打包到正确的结构中吗?

非常感谢, Pat


奇怪,没有网络连接?... - khmarbaise
有没有设置本地Maven仓库(Nexus,Artifactory)并安装所有所需构件的选项? - Nishant
@khmarbaise - 他们的构建环境没有连接到互联网。 - Pat
@Nishant - 好的,他们希望我们提供内部存储库。他们可以按照自己的方式提供该存储库。我建议使用简单的文件URL,因为他们只想证明构建过程,而不进行任何主动开发。 - Pat
3个回答

0
尝试使用mvn dependency:copy-dependencies命令。这将把所有依赖项复制到一个名为target\dependency的目录中。
但是,我不确定这是否包括构建所需的依赖项以及安装编译输出所需的依赖项。

0

你有研究过maven-dependency-plugin吗?此外,我建议你做一个完整的编译和打包,之后再从该用户($HOME/.m2/repository)打包本地存储库。这样,你就有了完成全面编译等所需的所有内容。


我考虑打包本地仓库,但我想在我们的构建服务器上运行它,该服务器构建的项目比这个多得多。不过我会看一下依赖插件。谢谢。 - Pat
在构建服务器中,您可以配置在构建期间使用干净的代码库(Hudson/Jenkins支持此功能)。 - khmarbaise

0
在一个干净的代码库中,你可以运行mvn dependency:go-offline。这将下载与项目相关的所有插件依赖项。你可以通过进行离线构建(mvn -o clean install)来验证这是否有效。
一旦这个步骤正常工作,你就可以创建一个包含代码库和源代码的归档文件,并传递给其他人。

太好了。结合khmarbaise的建议,在hudson中使用一个干净的代码库,我认为我可以做出一些东西。 - Pat
不幸的是,我无法花时间进行验证,因为我们正在说服客户允许访问互联网。不过我认为这个答案很符合要求,特别是结合khmarbaise关于Hudson/Jenkins私有仓库的提示。 - Pat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接