2008-12-12 17 views
13

Maven仓库是否有可能从SourceForge的文件发布系统主机Maven仓库,供应的工件(至少是jar文件)(因为他们已经在那里和SF提供的下载统计数据和这样的) ?设置使用SourceForge的文件服务器

所有库我已经看到了使用相同的目录布局,但是是必须的? 下载网址,就必须看起来更像http://sf.net/something.cgi?file-id=1234567

将只有在项目文件的数量少,因此,维持的下载网址在某种存储库的元数据的XML文件的半手动仍是一个选项。

注:这是一种相反的问题,以How can I deploy artifacts from a Maven build to the SourceForge File Release System?

澄清:我想把在文件发布系统中的文件(项目下载),而不是项目的网络空间或颠覆库。

回答

3

当然可以。但它有点复杂:

如果你看看这样的项目http://jwebunit.sourceforge.net/m2-repo/你会看到他们正在公开一个完全合法的maven回购。这些步骤是这样做的:

理论上,您可以将相关部分的〜/ .m2/repo文件夹添加到相关项目的svn根目录(在名为m-2repo的文件夹中,例如像jwebunit已经完成)。 Sourceforge公开了可通过网络访问的完整svn结构,所以有你的回购。

但是;问题是maven要求远程存储库包含所有元素的MD5校验和。当你运行“maven install”到一个lolcal文件库时,你将不会得到这些校验和。

我已在本地解决这个问题的方法是设置Apache/WebDAV的在我的机器上的特定文件夹。然后我使用THIS文件夹作为“mvn deploy”的目标。然后我将这个完整的文件夹保存到sourceforge的subversion中。

+0

这真的是项目的svn吗?或者他们的网站空间?在网络空间托管回帖是违反他们的服务条款,我相信(尝试在那里举办一个mercurial回购时遇到问题)。无论哪种方式,我想把文物放在他们的文件发布部分(项目下载)。 – Thilo 2008-12-12 11:43:26

0

很不错的解决方案,这要归功于krosenvold。此外,您可以尝试使用这部分pom生成校验和:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>install</goal> 
      </goals> 
      <configuration> 
       <createChecksum>true</createChecksum> 
      </configuration> 
     </execution> 
    </executions> 
</plugin>