كيفية تشغيل رصيف المراكب الصغيرة: تشغيل الحرب باستخدام حرب محددة بإحداثيات مخضرمة؟

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

سؤال

خلفية:أقوم بإعداد وحدة اختبارات وظيفية في مشروع مخضرم.نحن نستخدم ال maven-jetty-plugin للاختبار.

لقد قمت بإعداد البرنامج المساعد رصيف الميناء كما هو موضح هنا (لللعب بشكل جيد مع البرنامج الإضافي Failsafe)، ولكن ما أود القيام به هو نشر قطعة أثرية الحرب من وحدة الويب الرئيسية لدينا باستخدام رصيف المراكب الصغيرة (الذي تم تثبيته للتو في الريبو المخضرم المحلي بحلول الوقت الذي يتم فيه تشغيل وحدة الاختبار الوظيفية ).

البرنامج المساعد للرصيف هدف الحرب الجارية لديه <webApp> العنصر الذي يأخذ مسار سلسلة للحرب لنشره.أفضل تحديد الحرب التي سيتم نشرها باستخدام الإحداثيات المخضرمة التي تحددها وحدة الويب الخاصة بنا.هل هناك أي طريقة للقيام بذلك؟

الحلول الممكنة:

  1. القسم 4.13 من "إنشاءات أفضل باستخدام Maven" يصف استخدام البضائع لنشر حرب محددة باستخدام الإحداثيات المخضرمة، ولكن هذا مبالغة خطيرة نظرًا لأننا نستخدم الرصيف.
  2. تستخدم المنظمة البحرية الدولية (IMO) الأكثر منطقية التبعية: نسخ لنسخ قطعة أثرية الحرب التي تم إنشاؤها وتثبيتها للتو إلى مسار ثابت في الدليل المستهدف لوحدة الاختبارات الوظيفية، والذي يمكنني بعد ذلك توفيره في البرنامج المساعد للرصيف <webApp> عنصر التكوين.
هل كانت مفيدة؟

المحلول

يحتوي هدف تشغيل الحرب الخاص بالمكون الإضافي للمراكب الصغيرة على عنصر يأخذ مسار سلسلة إلى الحرب لنشره.أفضل تحديد الحرب التي سيتم نشرها باستخدام الإحداثيات المخضرمة التي تحددها وحدة الويب الخاصة بنا.هل هناك أي طريقة للقيام بذلك؟

ليس من المفترض حقًا استخدام المكون الإضافي maven jetty، حيث ينشر المكون الإضافي حرب الوحدة الحالية، وما تريد القيام به غير مدعوم افتراضيًا.

يصف القسم 4.13 من "إنشاءات أفضل باستخدام Maven" استخدام البضائع لنشر حرب محددة باستخدام إحداثيات maven،

نعم، يمكن لشركة Cargo القيام بذلك بطريقة نظيفة.

لكن هذه مبالغة خطيرة نظرًا لأننا نستخدم رصيف المراكب الصغيرة.

أنا لا أوافق.أولاً، لا يدعم المكون الإضافي jetty ما تريد القيام به خارج الصندوق (لذلك قد لا يكون الأداة المناسبة).ثانية، مبالغة خطيرة مبالغ فيه للغاية، وهو مفهوم خاطئ في الواقع، خاصة وأن البضائع تتطلب تكوينًا بسيطًا جدًا (صفر؟) للرصيف المدمج.

تستخدم IMO الأكثر منطقية التبعية: نسخ لنسخ قطعة أثرية الحرب التي تم إنشاؤها وتثبيتها للتو إلى مسار ثابت في الدليل المستهدف لوحدة الاختبارات الوظيفية

ليس هناك أي إساءة ولكن سؤالك برمته يبدو قليلاً مثل: لدي مطرقة، كانت جيدة بالنسبة للمسمار، هل يمكنني استخدامها للمسمار نظرًا لأن الحصول على مفك لولبي يبدو مبالغة خطيرة؟ للإجابة على هذا السؤال (وهو ما تقوله بطريقة أو بأخرى)، يمكنك استخدام dependency:copy واحصل على كل شيء يعمل مع البرنامج المساعد maven jetty، ولكن هذا يعد اختراقًا (وبما أنك لا تطرح أي سؤال في الواقع، أعتقد أنك تريد الحصول على رأي حول هذا الأمر).وطبعا القرار النهائي لك :)

تحسبًا لذلك، إليك كيفية تنفيذ ذلك مع Cargo:

<dependencies>
  <dependency>
    <groupId>war group id</groupId>
    <artifactId>war artifact id</artifactId>
    <type>war</type>
    <version>war version</version>
  </dependency>
  ...
</dependencies>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <configuration>
        <!-- Container configuration -->
        <container>
          <containerId>jetty6x</containerId>
          <type>embedded</type>
        </container>
        <!-- Configuration to use with the container or the deployer -->
        <configuration>
          <deployables>
            <deployable>
              <groupId>war group id</groupId>
              <artifactId>war artifact id</artifactId>
              <type>war</type>
              <properties>
                <context>war context</context>
              </properties>
            </deployable>
          </deployables>
        </configuration>
        <!-- Don't wait, execute the tests after the container is started -->
        <wait>false</wait>
      </configuration>
      <executions>
        <execution>
          <id>start-container</id>
          <phase>pre-integration-test</phase>
          <goals>
            <goal>start</goal>
          </goals>
        </execution>
        <execution>
          <id>stop-container</id>
          <phase>post-integration-test</phase>
          <goals>
            <goal>stop</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
  ...
</build>

ولا أعتقد أن هذا يمكن وصفه بشكل موضوعي بأنه "مبالغة خطيرة".

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