2009-07-21 79 views
4

我正在使用Maven2,我似乎无法在我的存储库中找到任何插件。我得到这样的错误了Maven2如何知道在哪里可以找到插件?

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

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

我的问题是如何Maven知道在哪里可以找到插件?在我的错误中有一个元数据的参考,预计什么元数据需要在哪里和什么格式必须采取?我已经没有多少运气,到目前为止寻找文档...

(我不感兴趣,简单的答案,使用中央回购协议,我想知道为什么myrepo不工作。)

谢谢!

回答

6

在每个工件的根(相对路径库根[的groupId]/[artifactId的])时,Maven希望找到一个行家-metadata.xml文件。它使用此文件来确定可用版本,最新版本和发布版本。

例如common-logging's metadata from repo1列出了所有可用的版本,并告诉我们发行版本是1.1.1为11月28日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会下载每个远程仓库到本地存储库中的元数据(与名称maven-metadata- [回购名称] .xml),因此它可以检查可用版本,而无需每次都访问每个存储库。如果您想要强制Maven重新获取元数据,您可以使用命令行中的“-U”开关执行此操作。

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

+0

感谢Rich,这是我的怀疑......需要确认 – Brabster 2009-07-21 09:49:10

相关问题