سؤال

أنا أستعمل m2eclipse. لاستيراد مشاريع Maven Java في الكسوف.

فشل في الاعتراف src/main/webapp كدليل المصدر.

رسميا في مستكشف الحزمة (أو عندما أنظر إلى جافا بناء المسار في خصائص المشروع)،
هذا الدليل ليس في قائمة مجلد المصادر (في حين src/main/java أو src/main/resources فعل).

للوصول إليها، يجب أن أنظر مباشرة إلى SRC / Directory، وتبدأ تتكشف ... ليست مريحة للغاية!

ومع ذلك، إذا كنت تعمل maven install, ، يتم نسخ الموارد إلى الدليل الصحيح.
(مثال : src/main/webapp/index.jsp ل target/mywar/index.jsp)

أسئلة

  1. هل هذا سلوك صحيح؟ (كنت أفكر أنه يمكن التعامل مع موارد أخرى ...)
  2. هل يمكنني إصلاحه؟
  3. أتساءل عما إذا كان هناك عيوب أخرى لهذا الموقف، ألا أكون على علم الآن؟
هل كانت مفيدة؟

المحلول

  1. هل هذا سلوك صحيح؟ (كنت أفكر أنه يمكن التعامل مع موارد أخرى ...)
  2. هل يمكنني إصلاحه؟
  3. أتساءل عما إذا كان هناك عيوب أخرى لهذا الموقف، ألا أكون على علم الآن؟
  1. نعم لي هذا هو السلوك الصحيح.
  2. لا معنى له حقا بالنسبة إلى SRC / Main / WebApp لتكون مجلد مصدر، لا يحتوي على ملفات مصدر قابلة للتعويض.
  3. لا أدري، لا أعرف. أعتقد أنه يعتمد على توقعاتك :)

ومع ذلك، قدمت M2ECLIPSE مساهمة تتيح src/main/webapp متاح على المستوى العلوي مع تسمية "موارد ويب" محددة، شيء مثل هذا:

alt text

قد يكون هذا حلا لمشاكلك (طي غير مناسب).

نصائح أخرى

بقدر ما تشعر بالقلق src/main/webapp ليس مجلد مصدر بمعنى أنه لم يتم تجميع محتويات / نسخ إلى target/classes, ، لذلك من وجهة نظر M2ECLIPSE، هذا هو السلوك الصحيح. هل هناك سبب معين تحتاج إلى علامة SRC / Main / WebApp المراد وضع علامة كجلد مصدر Eclipse؟

بدلا من إضافة / SRC / SRC / WebApp كجلد مصدر في مسار بناء Java، أضفه كجلد لتضمينه في تجميع النشر:

maeproject -> خصائص -> تجميع النشر: إضافة "/ SRC / Main / WebApp" النشر إلى "/"

حسنا، عليك فقط تحديد SRC / Main / WebApp كجلد Eclipse SRC:

انقر بزر الماوس الأيمن فوق مجلد Webapp -> Build Path -> استخدام مجلد المصدر

لا تظن أنه يمكنك بسهولة تغيير هذا السلوك دون أي خارقة قبيحة، وعلامة SRC هي مجرد شيء من الكسوف محددا أنه يستخدم لتكوين ClassPath وما إلى ذلك.

في حالتي، فشل الكسوف في الاعتراف src/main/webapp كمجلد موارد الويب. لقد قررتها عن طريق:

  1. حذف المشروع
  2. إعادة تشغيل الكسوف
  3. أخذ تحديث جديد لمشروع MAVENT SVN.

أحد الحلول هو استغلال دعم M2E لبناء المساعد Maven Plugin وإعلان SRC / Main / WebApp كمسار مورد Additioanl. هذا يجعل أيضا Eclipse Copy الموارد المحفوظة على بنية مجلد Build الهدف.

        <!-- help eclipse identify the webapp folder as a resource folder: -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/webapp</directory>
                                <targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

يزعم الكثير من الإجابات أنه لا يحقق src/main/webapp كجلد مصدر لأن ملفات JSP يتم تجميعها بواسطة الحاوية وليس Maven أثناء دورة البناء.

ومع ذلك، هو ذلك لا معنى له عندما تفعل اختبار الأمن:

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

حقيقة أن الكسوف يستثني هذا الدليل المحدد مشكلة كبيرة: من خلال القيام بذلك، لن تتضمن أدوات الأمان افتراضيا webapp/ الدليل في عملية المسح، مما يؤدي إلى السلبيات الخاطئة (نقاط الضعف الفعلية التي لا تبلغ عنها الأداة). ثم يؤدي هذا السلوك إلى قيام فرق التطوير بالتفكير في أن صفحات JSP الخاصة بهم (على سبيل المثال) آمنة من وجهة نظر أمنية.

إذا كانت فرق اختبار الأمن لا تولي اهتماما للفحص الذي أجرته فرق التنمية (في بعض الأحيان لا يمكننا حتى التحقق من عمليات الفحص التي تم إجراءها محليا)، فمن المرجح أن يتم إصدار المنتج مع نقاط الضعف الموجودة في التعليمات البرمجية الواردة في التعليمات البرمجية webapp/ مجلد.

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

في أي حال، حل هذه المشكلة عن طريق إضافة src/main/webapp/ مجلد إلى مسار البناء بالنقر بزر الماوس الأيمن في package explorer --> build path --> use as source folder

أستطيع أن أفكر في سبب.

أنا أستخدم Maven لتطوير مشروع GWT في الكسوف. في التكوين الخاص بي، يحتوي دليل SRC / Main / Webapp على ملفات HTML و CSS التي يجب أن أشير إليها كجزء من جهدي التطوري، على الرغم من أنها ليست ملفات "مترجمة".

القدرة على الوصول إليها مباشرة بدلا من الغوص في SRC / مجلد هي زائد. وتحديده في POM بحيث يتم إعداده بهذه الطريقة يعني أنني لست مضطرا يدويا بإضافة المجلد في كل مرة أقوم فيها بتشغيل Eclipse: Eclipse.

إلى نقطة نيستور، لا مزاح. إنها بيئة تطوير نهاية إلى نهاية وليس مجرد مترجم. من المقصود كواجهة لجميع التحف المصدر المساهمة في بناء من JSP لبناء تكوين مثل ملفات POM. لماذا سيؤدي الكسوف حتى يزعج محرري XML و JSP إذا لم تكن هذه غير قادرة؟ - بالمناسبة، مفيدة للغاية.

يعد البرنامج المساعد Maven للكتكس (أو العكس) رائعا لأنه يبني .classpath، ومع ذلك، في كل مرة يتم إنشاء تكوين Eclipse (أي Eclipse MVN: Eclipse)، يجب إضافة الدلائل غير المدعومة يدويا. هذا تمتص رئيسي.

حقيقة أن هذه الإضافات تهمل القدرة على إضافة مجلدات المصدر الجديدة بسهولة قابلة للعرض من داخل IDE هي لغز بالنسبة لي. تعلق صفحة المشروع البرنامج المساعد في Maven / Eclipse على تشغيل العمل لجعل هذه المصادر متاحة مؤقتا عن طريق تحويل أنواع المشروع، وخداع البرنامج المساعد - بالطبع، تحتاج إلى تغييره على الفور أو تالف البناء.

لماذا لا يخلقون القدرة على التحكم بشكل مستقل في التصريحات المصدر بشكل مستقل في.

لقد وجدت سبب مختلف تماما لنفس المشكلة التي كنت أتواجهها - لن أرى SRC / Main / WebApp في Explorer الحزمة.

اتضح أنه لا علاقة له بأي من بوم أو مع الكسوف (باستخدام SPRingSource Suite 3.5.0) قادرا على تحميل مشروع Maven.

كانت المشكلة هي أنه داخل بلدي SRC / الرئيسية / WebApp / البرامج النصية، كانت ملفات .git و .gitignore. أظن أنه قد يكون Eclipse لم يكن قادرا على التعامل مع أسماء الملفات البداية ب "". في مجلد Webapp. لقد اختبرت هذه النظرية عبر مشاريع متعددة ويبدو أنها تحمل أرضا حتى الآن.

آمل أن يساعد هذا.

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