2008-08-19 23 views
11

Tôi đang sử dụng SourceForge cho một số dự án nguồn mở và tôi muốn tự động triển khai bản phát hành cho Hệ thống phát hành tệp SourceForge. Tôi sử dụng Maven cho các bản dựng của mình và cơ chế triển khai SFTP chuẩn dường như không hoạt động trừ khi bạn thực hiện một số công việc chuẩn bị thủ công. Tôi đã đi qua một số bài đăng cũ trên các diễn đàn khác cho thấy rằng cách tiếp cận duy nhất là viết một Wagon đặc biệt cho SourceForge.Làm cách nào để triển khai các tạo tác từ một bản dựng Maven cho Hệ thống Phát hành Tệp SourceForge?

Có ai có kinh nghiệm gần đây với điều này không?

Trả lời

9

Tôi không thể kiểm tra này để xác nhận, nhưng tôi tin rằng nó có thể mà không cần viết bất kỳ plugin .

Bạn có thể deploy to SourceForge using SCP và plugin maven-deploy-có thể được định cấu hình thành use SCP để nó hoạt động. Bạn cũng có thể triển khai site to SourceForge qua SCP của mình.

Bạn sẽ định cấu hình máy chủ SourceForge trong tệp settings.xml của mình để sử dụng tên người dùng "kết hợp" với dấu phân cách bằng dấu phẩy. Với những thông tin quan trọng:

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 

Yếu tố máy chủ sẽ trông như thế này:

<server> 
    <id>sourceforge</id> 
    <username>foo,bar</username> 
    <password>secret</password> 
</server> 

Và phần distributionManagement trong POM của bạn sẽ trông như thế này:

<!-- 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> 

Cuối cùng tuyên bố rằng ssh- bên ngoài sẽ được sử dụng:

<build> 
    <extensions> 
    <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh-external</artifactId> 
     <version>1.0-alpha-5</version> 
    </extension> 
    </extensions> 
</build> 

Nếu điều này không làm việc, bạn có thể sử dụng phương pháp được đề nghị trong tài liệu tham khảo trang web trên, tức là tạo ra một lớp vỏ trên shell.sourceforge.net với tên đăng nhập và dự án của bạn nhóm:

ssh -t <username>,<project name>@shell.sf.net create 

Sau đó sử dụng shell.sourceforge.net (thay vì web.sourceforge.net) trong URL trang web của bạn trong phần diestributionManagement:

<url>scp://shell.sourceforge.net/home/frs/project/P/PR/PROJECT_UNIX_NAME/</url> 
0

Plugin Maven SourceForge không hoạt động với Maven 2. Ngoài ra tôi tin rằng trình cắm này sử dụng FTP không còn được hỗ trợ nữa.

0

tôi thấy rằng CruiseControl có thể tải lên các phiên bản để SFEE và cũng làm việc với Maven và Maven2

1

Sau khi thử này một số lần, cuối cùng tôi đã nhận nó để làm việc - với sftpkhông phải scp. Điều này sẽ làm việc từ một hộp unix (hoặc Mac) - Tôi không chắc chắn về khách hàng sftp cho Windoze. Tôi đang sử dụng phiên bản mvn 2.2.0 và tôi không nghĩ rằng mình có bất kỳ plugin đặc biệt nào được cài đặt. Điều này triển khai các gói mvn khác nhau vào phần Tệp của trang dự án của tôi.

Bạn sẽ cần phải thay đổi sau trong cài đặt của bạn để có được nó để làm việc:

  • người dùng - thay thế với Tên truy nhập SourceForce bạn
  • bí mật - thay bằng mật khẩu của bạn
  • ormlite - - thay thế bằng tên dự án của bạn
  • /o/hoặc/- thay thế bằng chữ cái đầu tiên và 2 ký tự đầu tiên của tên dự án của bạn

Trong tập tin $ HOME/.m2/settings.xml của tôi Tôi có những điều sau đây cho máy chủ SF:

<server> 
    <id>sourceforge</id> 
    <password>secret</password> 
    <filePermissions>775</filePermissions> 
    <directoryPermissions>775</directoryPermissions> 
</server> 

Tôi không chỉ định tên người dùng trong tệp settings.xml vì nó cần là tên người dùng, dự án và tôi muốn triển khai nhiều gói cho SF. Sau đó, trong tập tin pom.xml của tôi cho gói ormlite tôi có như sau:

<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> 

Rõ ràng là/phát hành và/snapshots hậu tố thư mục có thể được thay đổi tùy thuộc vào hệ thống phân cấp tập tin của bạn.

1

đâu timp = user và webmacro = dự án

scp url không hoạt động:

scp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2/ 

sftp url hoạt động:

sftp://timp,[email protected]:/home/groups/w/we/webmacro/htdocs/maven2 

hoặc cho dự án phát hành cổ vật:

sftp://timp,[email protected]:/home/frs/project/w/we/webmacro/releases 

scp will làm việc để shell.sourceforge.net, nhưng bạn phải tạo vỏ trước khi sử dụng với

ssh -t timp,[email protected] create 
3

Tôi đã tải lên một ví dụ để sourceforge.net tại địa chỉ: http://sf-mvn-plugins.sourceforge.net/example-1jar-thinlet/

Bạn có thể kiểm tra nó qua svn - vì vậy bạn có thể xem cách sử dụng các plugin để tải lên và tải xuống và đến khu vực hệ thống tập tin sourceforge.net và trang web.

Những điểm chính để tải lên là sử dụng sftp:

Thêm mã tương tự này để pom.xml của bạn

<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> 

Thêm mã tương tự như 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> 

Các chính điểm để tải xuống là sử dụng plugin wagon-http-sourceforge maven - vui lòng xem tại: sf-mvn-plugins.sourceforge.net/wagon-http-sourceforge/FAQ.html

Vui lòng thêm đoạn mã sau để pom.xml của bạn

<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> 
1

Điều này thực sự không bật ra được rằng khó khăn. Đầu tiên tôi có trang mvn: triển khai làm việc theo hướng dẫn tại this sourceforge site.Về cơ bản bạn khởi động vỏ SourceForge với

ssh -t user,[email protected] create 

Điều đó sẽ tạo ra lớp vỏ ở cuối của họ với một thư mục gắn kết để dự án của bạn trên một con đường như (tùy thuộc vào dự án của bạn tên):

/home/groups/c/ch/chex4j/ 

Trong rằng vỏ tôi trên máy chủ SourceForge tôi tạo ra một thư mục cho repo của tôi thuộc dự án thư mục apache "htdocs" với

mkdir /home/groups/c/ch/chex4j/htdocs/maven2 

Trong settings.xml tôi tôi đặt tên người dùng và mật khẩu để sh mà ell máy chủ để maven rằng có thể đăng nhập:

<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> 

Trong pom.xml bạn chỉ cần cài đặt phần distibutionManagement bạn đặt tên cho máy chủ bằng ID mà bạn thiết lập mật khẩu cho trong cài đặt của bạn file:

<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> 

Có mục nhập kho lưu trữ là mục nhập cho lệnh mvn deploy và mục nhập trang web dành cho lệnh mvn site: deploy. Sau đó, tất cả những gì phải làm là bắt đầu kết nối vỏ để đưa lên phía máy chủ sau đó đứng về phía địa phương của tôi chỉ cần chạy:

mvn deploy 

đó tải lên jar, pom và các nguồn và các loại tương tự lên trang web của dự án SourceForge tôi. Nếu bạn cố gắng nhấn vào thư mục/maven2 trên trang web dự án của bạn sourceforge vui lòng cho bạn biết rằng danh sách thư mục bị tắt theo mặc định và cách khắc phục. Để thực hiện điều này trên vỏ máy chủ bạn tạo một file .htaccess trong htdocs/thư mục maven2 của bạn có chứa các tùy chọn apache sau

Options +Indexes 

Sau đó, bingo, bạn có một repo maven trông giống như:

http://chex4j.sourceforge.net/maven2/net/sf/chex4j/chex4j-core/1.0.0/

Vỏ sf.net của bạn sẽ tắt sau một số giờ để không phải tài nguyên hog; do đó, bạn chạy "ssh -t ... create" khi bạn muốn triển khai trang web hoặc các tạo phẩm xây dựng của mình.

Bạn có thể duyệt tất cả các mã dự án maven tôi dưới SourceForge để xem các thiết lập làm việc của tôi:

http://chex4j.svn.sourceforge.net/viewvc/chex4j/branches/1.0.x/chex4j-core/

1

SCP URL không làm việc. Nhưng không sử dụng ":" sau tên máy chủ. MVN cố đọc bài kiểm tra dưới dạng số nguyên (số cổng).

Bạn không cần thiết lập đường hầm như simbo1905 đã làm.

Các vấn đề liên quan