我對SourceForge的一些開源項目使用SourceForge,我想自動將發佈部署到SourceForge文件發佈系統。我爲我的構建使用Maven,標準的SFTP部署機制似乎不起作用,除非您執行一些手動準備工作。我在其他論壇上發現了一些舊帖子,暗示唯一的方法是專門爲SourceForge編寫Wagon。如何將工件從Maven構建部署到SourceForge文件發佈系統?
有沒有人有任何近期的經驗呢?
我對SourceForge的一些開源項目使用SourceForge,我想自動將發佈部署到SourceForge文件發佈系統。我爲我的構建使用Maven,標準的SFTP部署機制似乎不起作用,除非您執行一些手動準備工作。我在其他論壇上發現了一些舊帖子,暗示唯一的方法是專門爲SourceForge編寫Wagon。如何將工件從Maven構建部署到SourceForge文件發佈系統?
有沒有人有任何近期的經驗呢?
我不能對此進行測試,以確認,但我相信這是可能的,而無需編寫任何插件。
你可以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-外部將被使用:
<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一個外殼,您的用戶名和項目組:
ssh -t <username>,<project name>@shell.sf.net create
然後使用shell.sourceforge.net(而不是web.sourceforge.net)在您的網站的網址在diestributionManagement部分:
<url>scp://shell.sourceforge.net/home/frs/project/P/PR/PROJECT_UNIX_NAME/</url>
Maven SourceForge插件不能與Maven 2一起使用。我也相信這個插件使用不再支持的FTP。
它看起來像我將不得不自己寫這個。
我發現CruiseControl可以上傳版本中SFEE並且還與Maven和Maven2的
這種嘗試多次後,我終於得到它的工作 - 與sftp不是 scp。這應該從unix box(或Mac)上運行 - 我不確定Windoze的sftp客戶端。我使用的是mvn 2.2.0版本,我認爲我沒有安裝任何特殊的插件。這將各種mvn包部署到我的項目頁面的Files部分。
你需要更改設置如下,以得到它的工作:
在我的$ HOME/.m2目錄/ settings.xml文件我已經在爲SF服務器如下:
<server>
<id>sourceforge</id>
<password>secret</password>
<filePermissions>775</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
,因爲它需要用戶名,項目,我不指定在settings.xml文件的用戶名我想將多個軟件包部署到SF。然後,在爲ormlite包我的pom.xml文件我有以下幾點:
<distributionManagement>
<repository>
<id>sourceforge</id>
<name>SourceForge</name>
<url>sftp://user,[email protected]:/home/frs/project/o/or/ormlite/releases
</url>
</repository>
<snapshotRepository>
<id>sourceforge</id>
<name>SourceForge</name>
<url>sftp://user,[email protected]:/home/frs/project/o/or/ormlite/snapshots
</url>
</snapshotRepository>
</distributionManagement>
顯然目錄後綴可以根據您的文件層次結構進行更改/新聞稿及/快照。
其中TIMP =用戶和WebMacro中=項目
SCP URL不起作用:
scp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2/
SFTP URL的工作原理:
sftp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2
或項目發佈假象:
sftp://timp,[email protected]:/home/frs/project/w/we/webmacro/releases
scp will工作shell.sourceforge.net,但你必須創建使用前殼與
ssh -t timp,[email protected] create
我在上傳一個例子來sourceforge.net:http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/
您可以通過SVN簽出它 - 這樣你可以看到如何使用插件上傳和下載和sourceforge.net文件系統區和網站。
上傳的要點是使用SFTP:
此類似代碼添加到您的pom.xml
<distributionManagement>
<!-- use the following if you're not using a snapshot version. -->
<repository>
<id>sourceforge-sf-mvn-plugins</id>
<name>FRS Area</name>
<uniqueVersion>false</uniqueVersion>
<url>sftp://web.sourceforge.net/home/frs/project/s/sf/sf-mvn-plugins/m2-repo</url>
</repository>
<site>
<id>sourceforge-sf-mvn-plugins</id>
<name>Web Area</name>
<url>
sftp://web.sourceforge.net/home/groups/s/sf/sf-mvn-plugins/htdocs/${artifactId}
</url>
</site>
</distributionManagement>
添加類似的代碼的Settings.XML
<server>
<id>sourceforge-sf-mvn-plugins-svn</id>
<username>tmichel,sf-mvn-plugins</username>
<password>secret</password>
</server>
<server>
<id>sourceforge-sf-mvn-plugins</id>
<username>user,project</username>
<password>secret</password>
</server>
主要點下載使用貨車-HTTP-SourceForge上的Maven插件 - 請在:sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html
請下面的代碼添加到您的pom.xml
<repositories>
<repository>
<id>sourceforge-svn</id>
<name>SF Maven Plugin SVN Repository</name>
<url>http://sf-mvn-plugins.svn.sourceforge.net/svnroot/sf-mvn-plugins/_m2-repo/trunk</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>sourceforge-frs</id>
<name>SF Maven Plugin Repository</name>
<url>http://sourceforge.net/projects/sf-mvn-plugins/files/m2-repo</url>
</pluginRepository>
</pluginRepositories>
<build>
<extensions>
<extension>
<groupId>net.sf.maven.plugins</groupId>
<artifactId>wagon-http-sourceforge</artifactId>
<version>0.4</version>
</extension>
</extensions>
:
</build>
這真的沒有變成是那麼難。首先,我有了mvn站點:按照this sourceforge site的說明部署工作。基本上你開始
ssh -t user,[email protected] create
SourceForge的外殼採用了文件夾安裝到您的項目的路徑上,將在他們的最終打造外殼,如(取決於你的項目名稱):
/home/groups/c/ch/chex4j/
在殼牌我SourceForge的服務器上我創建了一個文件夾,我的下項目apache的文件夾「的htdocs」回購與
mkdir /home/groups/c/ch/chex4j/htdocs/maven2
在我的settings.xml我設置爲SH用戶名和密碼ELL服務器,以便Maven可以登錄:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd/">
<servers>
<server>
<id>chex4j.sf.net</id>
<username>me,myproject</username>
<password>password</password>
<filePermissions>775</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
</servers>
</settings>
在pom.xml你只需要你的distibutionManagement部分的設置來命名的ID,你在你的設置中設置密碼服務器文件:
<distributionManagement>
<site>
<id>chex4j.sf.net</id>
<url>scp://shell.sourceforge.net/home/groups/c/ch/chex4j/htdocs/
</url>
</site>
<repository>
<id>chex4j.sf.net</id>
<name>SourceForge shell repo</name>
<url>scp://shell.sourceforge.net/home/groups/c/ch/chex4j/htdocs/maven2</url>
</repository>
</distributionManagement>
存儲庫條目是用於mvn deploy命令的,並且該站點條目用於mvn站點:deploy命令。然後,所有我需要做的就是啓動外殼連接,彈出服務器端,然後在我的本地端只需要運行:
mvn deploy
其上傳的jar,POM和源等等到我的SourceForge項目的網站。如果您嘗試打開項目網站sourceforge上的/ maven2文件夾,請告知您默認情況下目錄列表已關閉,以及如何解決該問題。要做到這一點的服務器的shell,創建一個在您的htdocs/maven2的文件夾中的.htaccess文件包含下列apache的選項
Options +Indexes
然後賓果,你有一個Maven回購看起來像:
http://chex4j.sourceforge.net/maven2/net/sf/chex4j/chex4j-core/1.0.0/
你的sf.net shell在數小時後關閉,不會佔用資源;所以當你想部署網站或你的構建工件時運行「ssh -t ... create」。
您可以瀏覽我所有的Maven項目的代碼在SourceForge上看到我的工作設置:
http://chex4j.svn.sourceforge.net/viewvc/chex4j/branches/1.0.x/chex4j-core/
SCP URL 確實工作。但不要在服務器名稱後面使用「:」。 MVN嘗試讀取以下測試作爲整數(端口號)。
您不需要像simbo1905那樣建立隧道。