我们已经与maven合作了很长一段时间,我们正努力将它提升到一个新的水平......
有几个Jars,我们只允许访问我们组织中的人员。所以一开始我们都在settings.xml中引用了与本地存储库相同的共享文件夹,并且当一个人在一个项目上工作时,它有一段时间了。
现在,我们希望拥有自己的“远程存储库”,如果它是如何被调用的,一个远程FTP将保存存储库,HTTP域指向该FTP上的存储库文件夹。
出于某种原因,我们可以部署Jar,Sources和JavaDocs,但是我们无法重建存储库的索引。我们假设FTP存储库需要某种索引文件,但我们无法使用Nexus或Artifactory创建这些文件。 (我们对远程存储库的理解存在根本性的错误)
所以我们的问题是,我们做什么错误?
我们从Eclipse获得的错误:
无法更新存储库的索引| http:// domain-refer-to-the-ftp-repository-folder
我们已将settings.xml更新为:
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository>
c:\localRepository\
</localRepository>
<servers>
<server>
<username>user</username>
<password>pass</password>
<id>rep-id</id>
</server>
</servers>
<mirrors>
<mirror>
<mirrorOf>rep-id</mirrorOf>
<name>My Repository</name>
<url>http://domain-referring-to-the-ftp-repository-folder</url>
<id>repository</id>
</mirror>
</mirrors>
</settings>
只是为了确保部署配置有效,并如上所述进行部署:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<configuration>
<altDeploymentRepository>rep-id::default::ftp://x.x.x.x/repository</altDeploymentRepository>
</configuration>
</plugin>
提前致谢,
亚当。
答案 0 :(得分:2)
您的ftp存储库没有m2eclipse请求的存储库索引文件。因此消息。
消息本身无需担心。如果正确/明确指定groupId / projectId,则应下载此存储库中的依赖项。
您可能需要查看this related SO帖子以及其中提到的链接。
答案 1 :(得分:2)
共享本地存储库真的很糟糕:本地存储库应该被视为在开发人员机器上运行的Maven的私有缓存...首先,它根本不是并发安全的,所以你必须很幸运(或者真的非工作)交错项目)到目前为止没有遇到任何问题。
您对远程存储库的想法很好,但是它的实现存在一些问题。 MRM(Maven Repository Manager,Artifactory和Nexus都是MRM等等)将解决您的所有问题。
首先,我建议您阅读以下内容: http://www.sonatype.com/books/nexus-book/reference/ http://www.sonatype.com/books.html
还有一些博客: http://www.sonatype.com/people/2011/04/how-not-to-download-the-internet/
简而言之:对于传输,请使用HTTP以获得最佳结果。 Maven和MRM对它有最好的支持。拥有MRM时,你不需要任何“infra”,比如带有HTTPd或FTP守护进程的FS服务器,因为MRM本身不仅托管你的部署,它将它们分享给你的队友,还有代理,保护它们,索引他们等等。
从您的问题来看,目前还不清楚为什么要使用FTP进行部署(MRM中没有一个支持FTP传输,至少不支持AFAIK),您的工件位于何处以及许多其他细节。阅读docos,为您的商店建立美好而舒适的生态系统!
祝你好运!注意:作为Nexus领导开发者,我与Sonatype和Nexus有联系。