我正在将SourceForge用于某些开放源代码项目,并且希望将发布的部署自动化到SourceForge文件发布系统。我使用Maven进行构建,除非您进行一些手动的准备工作,否则标准的SFTP部署机制似乎无法正常工作。我在其他论坛上遇到过一些老帖子,建议唯一的方法是专门为SourceForge编写Wagon。

最近有人对此有经验吗?

最佳答案

我无法通过测试来确认,但是我相信无需编写任何插件就可以实现。

您可以deploy to SourceForge using SCP,并且可以将maven-deploy-plugin配置为use SCP,这样它应该可以工作。您也可以通过SCP部署site to SourceForge

您可以在settings.xml中配置SourceForge服务器,以使用带有逗号分隔符的“组合”用户名。使用以下凭据:

SourceForge username: foo
SourceForge user password: secret
SourceForge project name: bar
Path: /home/frs/project/P/PR/PROJECT_UNIX_NAME/
    - Substitute your project UNIX name data for /P/PR/PROJECT_UNIX_NAME

服务器元素如下所示:
<server>
  <id>sourceforge</id>
  <username>foo,bar</username>
  <password>secret</password>
</server>

POM中的distributionManagement部分如下所示:
<!-- Enabling the use of FTP -->
<distributionManagement>
  <repository>
    <id>ssh-repository</id>
    <url>
scpexe://frs.sourceforge.net:/home/frs/project/P/PR/PROJECT_UNIX_NAME</url>
  </repository>
</distributionManagement>

最后声明要使用ssh-external:
<build>
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-ssh-external</artifactId>
       <version>1.0-alpha-5</version>
    </extension>
  </extensions>
</build>

如果这不起作用,则可以使用上面的站点引用中推荐的方法,即使用您的用户名和项目组在shell.sourceforge.net上创建一个shell:
ssh -t <username>,<project name>@shell.sf.net create

然后在diestributionManagement部分中的站点URL中使用shell.sourceforge.net(而不是web.sourceforge.net):
<url>scp://shell.sourceforge.net/home/frs/project/P/PR/PROJECT_UNIX_NAME/</url>

10-02 09:51