完全控制Maven部署

我们开发的代码最终被打包成工件,在开发其他软件组件期间作为依赖项使用。我们依赖于工件存储库管理器,如JFrog Artifactory,以解决消费和开发所有这些工件所带来的复杂挑战。
Artifactory是许多组织(无论大小)管理二进制文件的基础,是有效的CI / CD管道。
这篇博文将专门讨论管理跨开发团队使用二进制文件背后的管理挑战,重点关注安全最佳实践用于管理连接详细信息。作为示例,我们将关注使用Maven构建的Java项目。然而,同样的方法适用于任何编程语言和包类型。
稍微介绍一下JFrog CLI
在我们开始具体的挑战和解决方案之前,让我们回顾一下。JFrog CLI是一个智能客户机,它提供了一个简单的接口来自动访问JFrog产品。hth华体会最新官方网站它包含了很多功能,当它涉及到JFrog平台,如智能上传和下载与校验和优化,完全支持文件规格、构建集成功能等等。它还集成了一些最流行的包管理器,如Maven,并在与JFrog平台一起使用时增强了它们的功能。
挑战:安全地管理存储库连接细节
让我们看看下面的场景。您的应用程序是用Java编写的,它是使用Maven构建和打包的。Maven从Artifactory解析项目依赖项,并创建应用程序的jar。您的开发人员可能不知道他们的依赖项正在从Artifactory中的Maven存储库;因为这是在他们的本地设置XML文件。他们正在本地构建项目并运行测试,一切都运行良好。
现在,让我们看一下您的CI/CD管道。您正在使用的CI服务器,如Jenkins、CircleCI或JFrog Pipelines,会持续(或定期)轮询源代码控制存储库,并调用Maven来相应地构建和测试代码。当一切顺利时,一个新的快照版本被部署到二进制存储库中。
但是,Maven如何知道在哪里部署新的快照版本呢?
如果您使用的是Maven的默认部署插件,那么砰的一声和settings.xml文件应该包含到部署存储库的连接细节。在大多数情况下,开发人员不直接部署他们构建的构件,也没有访问部署存储库的权限。这就意味着我们还需要保持一种敬业的精神CI服务器的“settings xml”文件。中配置的服务器ID砰的一声应该与settings.xml中的ID匹配。
pom.xml
[… internal。repo MyCo内部存储库 主机到公司存储库 Repository > […]
settings.xml
[… internal。Repo maven foobar […]
至少可以这么说,以这种方式管理部署目标是不方便的。当您有多个项目,由不同的开发团队管理,使用不同的部署存储库时,情况会变得更糟。
解决方案:使用JFrog CLI
我想告诉你一个简单方便的方法来解决这个问题。如果您使用JFrog Artifactory来托管您的Maven存储库。这个解决方案不需要您的开发人员改变他们的工作方式。更改只发生在CI服务器端。它将通过JFrog CLI调用Maven,而不是直接使用CI管道调用Maven。
1.如何使用JFrog CLI构建和部署Maven构件
在本地运行以下命令,然后将它们作为CI管道的一部分实现:
- 安装JFrog命令行。
- 配置您的Artifactory服务器详细信息:
> jfrog c添加 - 将Maven项目从源代码控制和CD克隆到项目的根目录中:
> git clonehttps://github.com/jfrog/project-examples.gitCD项目-示例/maven-示例 - 配置项目的解析和部署细节:
> jfrog rt MVNC
请注意你现在有一个新的.jfrog项目根目录下的。该目录包括解析和部署详细信息。如果你想的话,你可以按.jfrog目录到源代码控件。通过这样做,CI管道将不需要运行Jfrog rt MVNC每一次。您还可以选择不将此目录推入源代码控制,并让CI运行mvnc命令,在非交互模式下,如下所示:
> jfrog rt MVNC——server-id-resolve my-s-id——server-id-deploy my-s-id——repo-resolve-releases lib -release——repo-resolve-snapshots lib -snapshot——repo-deploy-releases lib -snapshot-local——repo-deploy-snapshots lib -release-local
2.构建和部署代码
使用JFrog CLI构建代码与直接使用Maven构建代码非常相似,但有一点不同。因为我们不再使用Maven的部署插件,所以部署发生在运行“install”而不是“deploy”时。
运行以下命令JFrog CLI命令使用JFrog CLI构建代码并部署构件:
jfrog rt MVN clean install
请注意您可以在上面的命令中添加任何Maven标志。
关闭
就是这样!现在可以轻松安全地管理Maven存储库了。
在Maven构建中使用JFrog CLI和Artifactory还有很多优点,比如并行部署。我们将在接下来的博文中发现更多。
安装JFrog命令行并开始将其嵌入到CI/CD管道中。
我们很乐意帮忙!JFrog CLI背后的团队欢迎任何反馈、增强和改进的想法代码贡献。将您的输入发布为GitHub的问题。