Nexus 和 Maven 有什么区别?
仅使用Maven的基本场景是什么?只考虑 Nexus 的场景怎么样?当我想同时使用两者时,它会是什么样子?
Sonatype Nexus 和 Apache Maven 是两个经常一起工作的软件,但它们的工作部分却截然不同。 Nexus 提供存储库,而 Maven 使用存储库来构建软件。
这里引用“什么是 Nexus?”:
Nexus 管理开发所需的软件“工件”。如果您开发软件,您的构建可以从 Nexus 下载依赖项,并可以将工件发布到 Nexus,从而创建一种在组织内共享工件的新方法。虽然中央存储库始终为开发人员提供了极大的便利,但您不应该直接使用它。您应该使用 Nexus 代理 Central 并维护您自己的存储库,以确保组织内的稳定性。 借助 Nexus,您可以从单个位置完全控制对组织中每个工件的访问和部署。
这里引用了“Maven 和 Nexus Pro,为彼此而生”,解释了 Maven 如何使用存储库:
Maven 通过检索构建应用程序所需的工件并将构建过程的结果部署到存储库中来利用存储库的概念。 Maven 使用结构化存储库的概念,因此可以检索组件来支持构建。这些组件或依赖项包括库、框架、容器等。Maven 可以识别存储库中的组件,了解它们的依赖项,检索成功构建所需的所有内容,并在构建完成时将其输出部署回存储库。
因此,当您想同时使用两者时,您将拥有一个由 Nexus 管理的存储库,并且 Maven 将访问此存储库。
这有一个很好的一般描述: https://gephi.wordpress.com/tag/maven/
让我发表一些声明,以突出重点:
我们将代码库从 Ant 迁移到 Maven
所有第 3 方库已上传到 Nexus。 Maven 使用 Nexus 作为库的来源。
像 Sonatype 这样的存储库管理器的基本功能是:
我从学习中了解到的以及我认为的都在这里。我引用了我学到的一本书中的一些部分。 Nexus Repository Manager 和 Nexus Repository Manager OSS 作为存储库管理器启动 支持 Maven 存储库格式。虽然它现在支持许多其他存储库格式, Maven 存储库格式仍然是最常见且支持良好的构建和配置格式 在 JVM 及其他平台上运行的工具。 本章展示了将存储库管理器与 Apache Maven 一起使用的示例配置以及 其他工具的数量。这些设置利用了合并多个存储库并通过以下方式公开它们: 存储库组。除了使用的配置之外,本章还记录了此设置 具体工具。
您可以将 Nexus 视为存储和管理工件的“仓库”。您可以凭“公司徽章”进入该仓库的部分区域。而 Maven 是一个管理器,它使用您的指令/设计(属性、版本、依赖项、设置等)和原材料(包括存储在仓库中的软件工件)来构建您的 Java 应用程序。 Nexus 和 Maven 紧密合作,当然,人们可以单独与其中之一进行交互(例如,将包上传到 Nexus)。