是否可以托管从SourceForge的文件发布系统提供工件(至少是jar文件)的Maven存储库(因为它们已经存在并且SF提供下载统计信息等)?
我见过的所有存储库都使用相同的目录布局,但这是必须的吗? 下载网址必须更像 http://sf.net/something.cgi?file-id=1234567
项目中只有少量文件,因此半手动保存某种存储库元数据XML文件中的下载URL仍然是一种选择。
注意:这与How can I deploy artifacts from a Maven build to the SourceForge File Release System?
相反澄清:我想将文件放在文件发布系统(项目下载)中,而不是项目网站空间或subversion存储库。
答案 0 :(得分:3)
是的,你可以。但这有点令人费解:
如果你看一下这样的项目http://jwebunit.sourceforge.net/m2-repo/,你会发现他们正在揭露一个完全合法的maven回购。这些是执行此操作的步骤:
理论上你可以将〜/ .m2 / repo文件夹的相关部分添加到有问题的项目的svn根目录中(例如jwebunit已经完成的名为m-2repo的文件夹)。 Sourceforge暴露了可通过网络访问的完整svn结构,因此有你的回购。
但;问题是maven要求远程存储库包含所有元素的MD5校验和。当您向lolcal文件仓库运行“maven install”时,您将无法生成这些校验和。
我在本地解决这个问题的方法是在我的机器上的特定文件夹上设置apache / webdav。然后我使用THIS文件夹作为“mvn deploy”的目标。然后我只是在sourceforge上将这个完整的文件夹保存到subversion中。
答案 1 :(得分: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>
答案 2 :(得分:0)
对此抱歉,但我没有办法将两个问题联系在一起。我在这里向类似的(重复?)问题添加了一些信息。它显示了如何在不需要任何pom技巧或插件的情况下将maven部署到SF。
How can I deploy artifacts from a Maven build to the SourceForge File Release System?