سؤال

عندما أقوم بتكوين Scmchangelog-Plugin., ، كما هو مكتوب في الأمثلة / البرنامج التعليمي، وتشغيل جيل الموقع، يتم تجاهل اسم المستخدم وكلمة المرور التي قمت بتعيينها.

تقول الوثائق أن اسم المستخدم وكلمة المرور التي يجب استخدامها للوصول إلى SCM يمكن تكوينها في تكوين البرنامج المساعد. هذا يبدو وكأنه هذا:

<reporting>
 <plugins>
  <plugin> 
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>scmchangelog-maven-plugin</artifactId>
   <version>1.3</version>
   <configuration>
    <grammar>REMY</grammar>
    <connectionUrl>scm:svn:svn+ssh://repo.lan/repo/project/trunk</connectionUrl>
    <username>user</username>
    <password>password</password>
   </configuration>
  </plugin>
 </plugins>
</reporting>

عندما أقوم بتشغيل جيل الموقع (موقع MVN)، يقول الإخراج على Commandline

[INFO] Executing: /bin/sh -c cd /tmp && svn --username user --password '*****' 
--non-interactive list --xml svn+ssh://repo.lan/repo/project/tags/

لكنني ما زلت مطالبا بكلمة المرور والمستخدم المستخدم للوصول إلى SCM هو تشغيل الأمر MVN.

اي افكار عن ما قد يكون خاطئ؟

تحديث:

لقد تعقب المشكلة في عميل سطر الأوامر SVN الآن.

المشكلة هي أنه عندما أقوم بتشغيل أمر مثل ما يلي

svn list --username foo --password bar --non-interactive svn+ssh://host/repo/project

يبدو أن أداة سطر الأوامر تتجاهل الخيارات المحددة. ما زلت استجواب لكلمة مرور، والمستخدم المستخدم للوصول إلى عنوان URL هو الذي ينفذ الأمر، وليس مجموعة واحدة في الخيارات.

أنا أستخدم SVN الإصدار 1.4.6 هنا.

أي أفكار ما قد يحدث خطأ هنا؟

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

المحلول

هذا ال علة معروفة. وبعد السلوك الصحيح سيكون عرض خطأ ينص على أن --username و --password لا يتم دعم الخيارات عند استخدام آلية مصادقة خارجية مثل SSH، بدلا من تجاهل هذه الخيارات بصمت.

لإصلاح مشكلتك، قم بتمرير اسم مستخدم "FOO" الخاص بك كجزء من عنوان URL:

svn+ssh://foo@host/repo/project

واستخدام شيء مثل SSH- وكيل لتخزين بيانات الاعتماد الخاصة بك، وبالتالي تجنب موجه كلمة المرور.

نصائح أخرى

هل تقصد scm:changelog هدف Maven SCM البرنامج المساعدب إذا كان هذا هو الحال، فسيكون لديك خياران لضمان أن يتم تمرير SCM بيانات الاعتماد الخاصة بك.

النهج المفضل

بعض مقدمي SCM تتيح لك تحديد ملف إعدادات أدناه M2_Home / CONF /

يجب أن يحدد مزود SCM الخاص بك كيفية تحديد إعدادات التكوين. للتخريب، انتهى بي مع ملف مثل هذا:

<svn-settings>
  <user>[username]</user>
  <password>[password]</password>
</svn-settings>

إذا لزم الأمر، يمكنك تحديد ملف إعدادات SCM في موقع آخر عن طريق تمرير معلمة سطر الأوامر إلى الملف:

-Dmaven.scm.svn.config_directory=your_configuration_directory

نهج آخر

الخيار الآخر (غير المرغوب فيه) هو تكوين scm قسم من بوم بحيث تحتوي عناوين URL على اسم المستخدم وكلمة المرور. تنفيذ هذا هو الموفر المحدد، ولكن بشكل عام من أشكال مماثلة لهذا المثال للتخريب:

scm:svn:http://[user]:[password]@host/path

حتى قسم SCM الخاص بك في POM سيبدو شيئا مثل هذا:

<scm>
  <connection>scm:svn:http://[user]:[password]@host/path</connection>
  <developerConnection>
    scm:svn:http://[user]:[password]@host/path
  </developerConnection>
  <url>http://somerepository.com/viewsvn</url>
</scm>

من الواضح أن هذا غير مرغوب فيه بوضوح بيانات اعتماد SCM الخاصة بك في نهاية بوم المثبتة، يجب عليك فقط استخدام هذا فقط لاختبار الاتصال في رأيي. لمزيد من المعلومات انظر تنسيق عنوان URL SCM الصفحة والتفاصيل الخاصة ب مقدمي SCM

تحقق مما إذا كان هناك اسم مستعار قابل للاستخدام الخاص بك من أمر "SVN".

تحقق أيضا من ما إذا كان المضيف الوجهة يسمح بمصادقة وضع كلمة المرور. قد تستحق أيضا التحقق من أن سطح المكتب لا يخدع مع بعض "وكيل كيرينغ" مفيد، يمكن أن تتداخل تلك مع SVN + SSH.

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