关于项目元数据的常见问题

  1. 我为什么在乎?
  2. 如何确保我的项目的依赖元数据是正确的?
  3. 如何确保我的最新版本自动出现在中央 Maven 存储库中?
我为什么在乎?

如果您是 Maven 的用户,那么您熟悉项目对象模型 (POM),它是 Maven 中的基本工作单元。Maven 是一个以项目为中心的工具,因此我们试图在 POM 中捕捉项目的本质。这包括你的项目是什么,项目在哪里,你可以在哪里找到项目的源代码,谁是项目的开发人员以及你如何获得他们,你需要什么来构建项目,你的方式项目将被构建,您的项目将以何种形式分发,以及将从哪里分发。

但是为什么一个项目不使用 Maven 关心呢?

无论你是否想使用 Maven,你项目的用户——尤其是如果你提供了一个框架或可重用的库——可能会选择使用中央 Maven 存储库。中央 Maven 存储库中元数据的质量对您的用户很重要,因为他们列出了对您的元数据的依赖项并将信息链接到他们自己的项目中。

维护项目的元数据并不难——您可以在发布时将其提交到中央 Maven 存储库(对于大型项目,它可以自动设置),并且只需要描述您的项目、它的位置、版本以及最重要的是它的依赖项. 如果不这样做,或提供不完整或无效的信息,则此责任留给您项目的用户。

Maven 团队确实在积极处理此元数据以提高其质量,但由于存储库中有数千个工件并且对其他项目只有一定程度的了解,这并不理想。没有人比你更了解你的项目。

[最佳]


如何确保我的项目的依赖元数据是正确的?

最好在发布时正确处理,以避免以后不得不进行困难的更新。您可以使用常规的中央存储库上传程序将您的信息提交到中央 Maven 存储 库。

最好提供以下信息:

  • 项目名
  • 项目网址
  • 执照
  • 项目描述
  • 组和工件 ID
  • 包装
  • 版本
  • 依赖项

组 ID 应该类似于包名称或网站的反向 DNS,并且可以包含您认为合适的子组:例如,org.apache.maven 和 org.apache.maven.plugins。

工件 ID 特定于每个工件,按照惯例应该是文件名,不包括扩展名。

打包就是你的神器的类型,比如jar、war、ear、ejb、dll等。

每个依赖项还包含它们的组 ID 和工件 ID,以及版本规范。特别是,您应该确保将可选依赖项标记为这样,并且将运行时和仅测试依赖项标记为给定范围。如果合适,范围可以用于版本,例如 commons-collections [2.0,3.0)。确保依赖项存在于 Maven 系统中并且首先匹配。

有关详细信息,请参阅 项目描述符的格式 。

[最佳]


如何确保我的最新版本自动出现在中央 Maven 存储库中?

如果您能够将您的版本发布到 Maven2 样式存储库并通过 rsync 使其可用,我们可以在发布时自动将它们发布到 ibiblio。此过程要求您对元数据负全部责任,但也要确保为您的用户提供最佳服务。如果这对您的项目感兴趣,请联系 dev@maven.apache.org。

[最佳]