使用SourceForge的文件服务器设置Maven仓库

13

是否可能托管一个Maven存储库,从SourceForge的文件发布系统中提供构件(至少是jar文件)(因为它们已经在那里了,SF提供下载统计数据等)?

我看到的所有存储库都使用相同的目录布局,但这是必须的吗? 下载URL需要看起来更像 http://sf.net/something.cgi?file-id=1234567

项目中只有一小部分文件,因此在某种类型的存储库元数据XML文件中半手动维护下载URL仍然是一种选项。

注意:这与如何从Maven构建中部署构件到SourceForge文件发布系统?的问题相反。

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

3个回答

3
是的,你可以。但是有点复杂:
如果你查看像这个项目http://jwebunit.sourceforge.net/m2-repo/,你会发现他们正在公开一个完全合法的maven仓库。以下是实现方式:
理论上,你可以将~/.m2/repo文件夹中相关部分添加到所讨论的项目的svn根目录下(例如,像jwebunit一样创建一个名为m-2repo的文件夹)。Sourceforge通过Web公开了完整的svn结构,因此这就是你的仓库。
但是,问题在于maven要求远程仓库包含所有元素的MD5校验和。当你对本地文件仓库运行“maven install”时,你不会生成这些校验和。
我在本地解决这个问题的方法是在我的机器上的特定文件夹上设置apache/webdav。然后我使用这个文件夹作为“mvn deploy”的目标。然后我只需将这个完整文件夹检入sourceforge的subversion即可。

这真的是项目的svn吗?还是他们的网络空间?我相信在网络空间托管存储库违反了他们的服务条款(当我尝试在那里托管mercurial repo时遇到了问题)。无论哪种方式,我都想将构件放在他们的文件发布部分(项目下载)中。 - Thilo

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>

0

是的,这个页面也在问题本身中链接(作为“相反的一面”)。 - Thilo
抱歉,Thilo。我应该删除这篇帖子吗? - Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接