Maven2 如何知道在哪里可以找到插件?

发布于 2024-07-27 18:10:58 字数 340 浏览 6 评论 0原文

我正在使用 Maven2,但我似乎在我的存储库中找不到任何插件。 我收到类似错误

存储库元数据: “org.apache.maven.plugins”不能 在存储库中找到:myrepo

其中 myrepo 是我的存储库的名称。

我的问题是 Maven 如何知道在哪里可以找到插件? 我的错误中引用了元数据,什么元数据需要在哪里以及必须采用什么格式? 到目前为止,我在寻找文档方面运气不佳...

(我对使用中央存储库的简单答案不感兴趣,我想知道为什么 myrepo 不起作用。)

谢谢!

I'm using Maven2 and I can't seem to find any plugins in my repository. I'm getting errors like

repository metadata for:
'org.apache.maven.plugins' could not
be found on repository: myrepo

where myrepo is the name of my repository.

My question is how does Maven know where to find plugins? There's a reference in my error to metadata, what metadata is expected where and what format must it take? I've not had much luck so far looking for documentation...

(I'm not interested in the easy answer to use the central repo, I want to know why myrepo isn't working.)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯淡〆 2024-08-03 18:10:58

在每个工件的根目录中(存储库根目录 [groupId]/[artifactId] 的相对路径),Maven 期望找到一个 maven-metadata.xml 文件。 它使用此文件来确定可用版本、最新版本和已发布版本。

例如 repo1 中的 common-logging 元数据 列表所有可用版本,并告诉我们截至 2008 年 11 月 28 日发布版本为 1.1.1。Maven

<?xml version="1.0" encoding="UTF-8"?><metadata>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
  <versioning>
    <release>1.1.1</release>
    <versions>
      <version>1.0</version>
      <version>1.0.1</version>
      <version>1.0.2</version>
      <version>1.0.3</version>
      <version>1.0.4</version>
      <version>1.1</version>
      <version>1.1.1</version>
    </versions>
    <lastUpdated>20071128191817</lastUpdated>
  </versioning>
</metadata>

会将每个远程存储库的元数据下载到本地存储库(名称为 maven-metadata-[repo name].xml),以便它可以检查可用版本,而不必每次都访问每个存储库。 如果你想强制 Maven 重新获取元数据,你可以使用命令行上的“-U”开关来实现。

如果您有自己的存储库,则需要发布此类元数据,以便 Maven 可以确定可用的版本是否是正确的。 最简单的方法是使用存储库管理器,例如 NexusArtifactory 都将为您管理元数据。

In the root of each artifact (relative path to repository root [groupId]/[artifactId]), Maven expects to find a maven-metadata.xml file. It uses this file to determine the available versions, the latest version, and the released version.

For example common-logging's metadata from repo1 lists all the available versions and tells us the release version is 1.1.1 as of 28th Nov 2008.

<?xml version="1.0" encoding="UTF-8"?><metadata>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
  <versioning>
    <release>1.1.1</release>
    <versions>
      <version>1.0</version>
      <version>1.0.1</version>
      <version>1.0.2</version>
      <version>1.0.3</version>
      <version>1.0.4</version>
      <version>1.1</version>
      <version>1.1.1</version>
    </versions>
    <lastUpdated>20071128191817</lastUpdated>
  </versioning>
</metadata>

Maven will download the metadata for each remote repository to your local repository (with the name maven-metadata-[repo name].xml) so it can check the available versions without having to hit each repository each time. If you want to force Maven to refetch the metadata you can do so with the "-U" switch on the commandline.

If you have your own repository, it needs to publish this kind of metadata so Maven can determine if any of the versions are available is the right one. The simplest way to do this is to use a repository manager like Nexus or Artifactory which will both manage the metadata for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文