Maven 生态系统是每个 Java 开发人员生活的一部分。无论您使用 Maven 还是 Gradle、Kotlin 还是 Scala (etc.),工件都通过相同的协议交换 - Maven 协议✨。

我们可以将我们的公共项目发布到官方的 Maven 中央存储库,但对于私有项目,很长一段时间我们只能使用:

  • 连结

  • 文件

  • 神器

这些功能强大的项目对于大公司来说是一个很好的解决方案,但对于专注于简单性和由于预算有限而减少资源使用的业余爱好者项目和环境来说,它并不适用。

这就是我创建Reposilite的原因,它是 Maven 工件的轻量级和开源存储库管理器。这是替换 Nexus、Archiva 或 Artifactory 等管理器的简单解决方案。

优点:

  • 高效,将资源的使用减少到甚至 10MB 的 RAM,而不是例如2GB

  • 非常易于使用

  • 批准并在Apache 站点上列出

  • 开源❤️

缺点:

  • 可能缺少额外的功能,但您可以随时在问题中请求它们

  • 专注于性能,一些重功能可能根本没有实现

安装

注意: 项目动态变化,因此本文的某些部分(如屏幕截图)可能会过时。

此时 (Reposilite 2.6.1) 你可以使用 Reposilite 的独立 jar 版本或Docker Image 🐳。如果您正在寻找始终保持最新的安装指南,请访问:

  • reposilite.com/docs/install

我们将在本文中关注独立版本,可以从 GitHub 发布页面下载:

  • github.com/dzikoysk/reposilite/releases

要启动 Reposilite,只需运行 jar 存档:

$ java -Xmx16M -jar reposilite.jar

瞧,差不多就这些了,你在不到 1 分钟的时间内就成为了一个新的 Maven 存储库的所有者 ฅ^•ع•^ฅ 你应该能够在localhost:80上看到结果:

[预览](https://res.cloudinary.com/practicaldev/image/fetch/s--HanfwQaB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://reposilite.com/img /about-preview.png)

这很快,所以让我们做点别的。从 2.x 版本开始,Reposilite 不再是用户和项目之间复杂的基于权限的系统,而是使用访问令牌系统来授权请求。要全面了解访问令牌,请访问:

  • reposilite.com/docs/authorization

首先,我们需要告诉 Maven,我们要将项目上传到哪里。为此,您应该在pom.xml中声明分配管理属性:

<distributionManagement>
    <repository>
        <id>local-repository</id>
        <url>http://localhost:80/releases</url>
    </repository>
</distributionManagement>

要为管理员生成访问令牌,我们需要在 Reposilite CLI 中使用keygen命令:

$ keygen / admin
| Generated new access token for admin(/)
| AW7-kaXSSXTRVL_Ip9v7ruIiqe56gh96o1XdSrqZCyTX2vUsrZU3roVOfF-YYF-y
| Stored tokens: 1

/分隔符意味着,由该令牌签名的请求可以访问所有路径,例如:

请求 URI

地位

/

授权

/发布

授权

/快照

授权

/发布/我们的/真棒/项目

授权

现在,您必须在~/.m2/settings.xml文件中添加一个带有生成令牌的新服务器条目:

<server>
  <!-- The id just has to match the id provided in pom.xml -->
  <id>local-repository</id>
  <username>admin</username>
  <password>AW7-kaXSSXTRVL_Ip9v7ruIiqe56gh96o1XdSrqZCyTX2vUsrZU3roVOfF-YYF-y</password>
</server>

要发布您的工件,只需运行:

$ mvn deploy

如果您正确配置了所有内容,您应该能够在存储库浏览器中看到新版本的工件! 🎉

要发现 Reposilite 的更多功能,例如仪表板或远程 CLI:

[CLI 预览](https://res.cloudinary.com/practicaldev/image/fetch/s--j-kGN4Ig--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user- images.githubusercontent.com/4235722/86064986-d1f6c200-ba6e-11ea-8c5f-d552b0163ce7.gif)

访问Reposilite - 指南和GitHub - Reposilite。

祝你好运,部署愉快🚀,

季科伊斯克

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐