English 中文(简体)
使用SourceForge的文件服务器建立Maven仓库
原标题:
  • 时间:2008-12-12 06:42:11
  •  标签:

可以在Maven仓库中托管文件库(至少是jar文件),并从SourceForge的文件发布系统中提供(因为它们已经存在,而且SF提供下载统计等),这是可能的吗?

All the repositories I have seen use the same directory layout, but is that a must? Download URLs would have to look more like http://sf.net/something.cgi?file-id=1234567

该项目中只有少量文件,因此将下载URL维护在某种仓库元数据XML文件中的半手动方法仍然是可选的。

注意:这是与“如何将Maven构建的工件部署到SourceForge文件发布系统?”相反的问题。

澄清:我想把文件放在文件发布系统(项目下载)中,而不是项目网站空间或子版本仓库中。

问题回答

是的,你可以。但是有点复杂:

如果您查看像这样的项目 http://jwebunit.sourceforge.net/m2-repo/,您会发现它们正在公开一个完全合法的Maven仓库。这是实现它的步骤:

理论上,您可以将~ /.m2 / repo文件夹的相关部分添加到有关项目的svn根目录中(例如,像jwebunit一样放在名为m-2repo的文件夹中)。 Sourceforge通过Web公开了完整的svn结构,因此您的repo在那里。

但是问题在于maven要求远程仓库包含所有元素的MD5校验和。当您将“maven install”运行到本地文件repo时,您将无法生成这些校验和。

我在本地解决这个问题的方法是在我电脑上的特定文件夹上设置了Apache/Webdav。然后我使用此文件夹作为“mvn发布”的目标。然后我只需将这个完整的文件夹保持在SourceForge的版本控制中。

很抱歉,但我没找到把两个问题链接在一起的方法。我在这里的一个类似的(重复?)问题中添加了一些信息。它展示了如何在不需要任何pom技巧或插件的情况下,使用maven将SF部署。

我如何将Maven构建的构件部署到SourceForge文件发布系统?

非常好的解决方案,感谢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>




相关问题
热门标签