كيف يمكنني نشر العناصر من إصدار Maven إلى نظام إصدار الملفات SourceForge؟

StackOverflow https://stackoverflow.com/questions/16487

  •  08-06-2019
  •  | 
  •  

سؤال

أنا أستخدم SourceForge لبعض المشاريع مفتوحة المصدر وأريد أتمتة نشر الإصدارات إلى نظام إصدار الملفات SourceForge.أستخدم Maven للإصدارات الخاصة بي ويبدو أن آلية نشر SFTP القياسية لا تعمل إلا إذا قمت ببعض أعمال التحضير اليدوية.لقد صادفت بعض المنشورات القديمة في المنتديات الأخرى التي تشير إلى أن النهج الوحيد هو كتابة عربة مخصصة لـ SourceForge.

هل لدى أي شخص أي تجربة حديثة مع هذا؟

هل كانت مفيدة؟

المحلول

لا أستطيع اختبار ذلك للتأكيد، لكنني أعتقد أنه ممكن دون كتابة أي مكونات إضافية.

أنت تستطيع النشر إلى SourceForge باستخدام SCP, ويمكن تكوين البرنامج المساعد maven-deploy استخدم SCP لذلك يجب أن تعمل.يمكنك أيضًا نشر الموقع إلى SourceForge عبر SCP.

يمكنك تكوين خادم SourceForge في ملف settings.xml الخاص بك لاستخدام اسم مستخدم "مدمج" مع فاصلة.مع أوراق الاعتماد هذه:

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 الخاص بك كما يلي:

<!-- 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 على shell.sourceforge.net باسم المستخدم الخاص بك ومجموعة المشروع:

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

ثم استخدم shell.sourceforge.net (بدلاً من web.sourceforge.net) في عنوان URL لموقعك في قسم diestributionManagement:

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

نصائح أخرى

لقد قمت بتحميل مثال على 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>

النقطة الرئيسية للتنزيل هي استخدام البرنامج الإضافي wagon-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>

يبدو أنني سأضطر إلى كتابة هذا بنفسي.

https://sourceforge.net/projects/wagon-sf/

وبعد تجربة ذلك عدة مرات، تمكنت أخيرًا من العمل معه com.sftp لا scp.يجب أن يعمل هذا من خلال صندوق يونكس (أو Mac) - لست متأكدًا من عملاء sftp لـ Windoze.أنا أستخدم الإصدار 2.2.0 من mvn ولا أعتقد أن لدي أي مكونات إضافية خاصة مثبتة.يؤدي هذا إلى نشر حزم mvn المتنوعة في قسم الملفات في صفحة مشروعي.

ستحتاج إلى تغيير ما يلي في إعداداتك حتى تعمل:

  • user - استبدله باسم مستخدم sourceforce الخاص بك
  • سر - استبدله بكلمة المرور الخاصة بك
  • ormlite - استبدل باسم مشروعك
  • /o/or/ - استبدل بالحرف الأول وأول حرفين من اسم مشروعك

في ملف $HOME/.m2/settings.xml لدي ما يلي لخادم SF:

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

لا أحدد اسم المستخدم في ملف settings.xml لأنه يجب أن يكون اسم مستخدم ومشروعًا وأريد نشر حزم متعددة إلى SF.بعد ذلك، في ملف pom.xml الخاص بحزمة ormlite لدي ما يلي:

<distributionManagement>
 <repository>
  <id>sourceforge</id>
  <name>SourceForge</name>
  <url>sftp://user,ormlite@frs.sourceforge.net:/home/frs/project/o/or/ormlite/releases
  </url>
 </repository>
 <snapshotRepository>
  <id>sourceforge</id>
  <name>SourceForge</name>
  <url>sftp://user,ormlite@frs.sourceforge.net:/home/frs/project/o/or/ormlite/snapshots
  </url>
 </snapshotRepository>
</distributionManagement>

من الواضح أن لاحقات الدليل /releases و/snapshots يمكن تغييرها وفقًا للتسلسل الهرمي للملفات لديك.

حيث temp = المستخدم وwebmacro = المشروع

عنوان URL الخاص بـ scp لا يعمل:

scp://timp,webmacro@shell.sourceforge.net:/home/groups/w/we/webmacro/htdocs/maven2/

يعمل عنوان URL لـ sftp:

 sftp://timp,webmacro@web.sourceforge.net:/home/groups/w/we/webmacro/htdocs/maven2

أو لقطع أثرية إصدار المشروع:

sftp://timp,webmacro@web.sourceforge.net:/home/frs/project/w/we/webmacro/releases

سوف يعمل scp على shell.sourceforge.net، ولكن يجب عليك إنشاء الصدفة قبل استخدامها مع

ssh -t timp,webmacro@shell.sourceforge.net create

هذا حقا لم يكن بهذه الصعوبة.أولاً كان لدي موقع mvn:نشر العمل باتباع الإرشادات الموجودة على هذا الموقع sourceforge.في الأساس، تبدأ تشغيل shell sourceforge باستخدام

ssh -t user,project@shell.sourceforge.net create

سيؤدي ذلك إلى إنشاء الصدفة في نهايتها بمجلد مثبت على مشروعك على مسار مثل (اعتمادًا على اسم مشروعك):

/home/groups/c/ch/chex4j/

في هذا الغلاف، قمت على خادم sourceforge بإنشاء مجلد لمستودع الريبو الخاص بي ضمن مجلد مشروع apache "htdocs" باستخدام

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

في ملف settings.xml الخاص بي، قمت بتعيين اسم المستخدم وكلمة المرور لخادم Shell هذا حتى يتمكن 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 الخاص بك لتسمية الخادم حسب المعرف الذي قمت بتعيين كلمة المرور له في ملف الإعدادات الخاص بك:

<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 وإدخال الموقع مخصص لأمر mvn site:deploy.ثم كل ما علي فعله هو بدء اتصال Shell لإظهار جانب الخادم ثم على الجانب المحلي الخاص بي فقط قم بتشغيل:

mvn deploy

الذي يقوم بتحميل الجرة والبوم والمصادر وما شابه ذلك على موقع مشاريع sourceforge الخاص بي.إذا حاولت الضغط على المجلد /maven2 على موقع مشروعك على الويب، sourceforge، فيرجى إخبارك بأن قائمة الدليل معطلة افتراضيًا وكيفية إصلاحها.للقيام بذلك على غلاف الخادم، يمكنك إنشاء ملف .htaccess في مجلد htdocs/maven2 الخاص بك والذي يحتوي على خيارات Apache التالية

Options +Indexes

ثم بينغو، لديك الريبو المخضرم الذي يبدو كما يلي:

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

يتم إغلاق غلاف sf.net الخاص بك بعد عدة ساعات لعدم استهلاك الموارد؛لذلك تقوم بتشغيل "ssh -t ...create" عندما تريد نشر الموقع أو عناصر البناء الخاصة بك.

يمكنك تصفح جميع أكواد مشروع maven الخاصة بي ضمن sourceforge لرؤية إعدادات العمل الخاصة بي:

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

عنوان URL لـ SCP يفعل عمل.لكن لا تستخدم ): "بعد اسم الخادم.يحاول MVN قراءة الاختبار التالي كعدد صحيح (رقم المنفذ).

لا تحتاج إلى إنشاء أنفاق كما فعل simbo1905.

لا يعمل المكون الإضافي Maven SourceForge مع Maven 2.وأعتقد أيضًا أن هذا المكون الإضافي يستخدم بروتوكول نقل الملفات (FTP) الذي لم يعد مدعومًا.

لقد وجدت ذلك مثبت السرعة يمكنه تحميل الإصدارات إلى SFEE ويعمل أيضًا مع Maven وMaven2

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top