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

Bri*_*ews 11 java sourceforge maven-2

我正在使用SourceForge进行一些开源项目,我想自动部署到SourceForge文件发布系统的版本.我使用Maven进行构建,除非你做一些手动准备工作,否则标准的SFTP部署机制似乎不起作用.我在其他论坛上发现了一些旧帖子,建议唯一的方法是专门为SourceForge编写一个Wagon.

有没有人最近有这方面的经验?

Ric*_*ler 9

我无法对此进行测试以确认,但我相信无需编写任何插件即可.

您可以使用SCP部署到SourceForge,并且maven-deploy-plugin可以配置为使用SCP,因此它应该可以工作.您还可以通过SCP 将您的站点部署到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 
Run Code Online (Sandbox Code Playgroud)

server元素如下所示:

<server>
  <id>sourceforge</id>
  <username>foo,bar</username>
  <password>secret</password>
</server>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

最后声明要使用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>
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,您可以在上面的站点参考中使用推荐的方法,即在shell.sourceforge.net上使用您的用户名和项目组创建一个shell:

ssh -t <username>,<project name>@shell.sf.net create
Run Code Online (Sandbox Code Playgroud)

然后在diestributionManagement部分的站点URL中使用shell.sourceforge.net(而不是web.sourceforge.net):

<url>scp://shell.sourceforge.net/home/frs/project/P/PR/PROJECT_UNIX_NAME/</url>
Run Code Online (Sandbox Code Playgroud)