لدي أخطاء مع M2Eclipse ولكن ليس مع Maven2 على سطر الأوامر - هل M2Eclipse خاطئ؟

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

سؤال

لقد قمت بتثبيت M2Eclipse لبناء مشروع Java في Eclipse.

لقد استوردت المشروع على النحو التالي:

Import->
Maven->
Existing Maven Projects->
Import Maven Projects->
- Select root directory
- Select pom file
- Click Finish

من المؤكد أن M2Eclipse كان في الواقع بناء المشروع ، قمت بحذف الدليل المستهدف وتأكدت من إعادة إنشاءه بواسطة M2Eclipse وكان. ولكن على عكس إصدار سطر الأوامر من Maven الذي بنى كل شيء تمامًا ، يترك M2Eclipse عددًا كبيرًا من أخطاء البناء في الكود المصدري.

هل من الممكن أن أقوم بتكوين m2eclipse بشكل صحيح؟ كيف يمكنني التحقق من هذا؟

هذا رابط github للمشروع أحاول البناء. أحصل على أخطاء بناء Override في هذا الخط. تقول "يجب أن تتجاوز الطريقة CreateNewToken طريقة فائق الطبقة الفائقة".

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

المحلول

تحديث: المشكلة هي نفس المشكلة الموصوفة في "يجب تجاوز" أخطاء "طريقة الطبقة الفائقة" بعد استيراد مشروع إلى Eclipse وهنا ما تقوله الإجابة المقبولة:

إن Eclipse يتخلف عن Java 1.5 ولديك فئات تنفذ طرق الواجهة (والتي في Java 1.6 يمكن تعليقها باستخدام Override ، ولكن في Java 1.5 لا يمكن تطبيقها إلا على طرق تجاوز طريقة الطبقة الفائقة).

تغيير مستوى المترجم إلى Java 1.6 سيجعل المشكلة تختفي. للقيام بذلك ، قم بتعديل تكوين البرنامج المساعد المترجم:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

وتحديث تكوين المشروع (انقر على اليمين في المشروع ثم تكوين مشروع Maven V تحديث) هل يحل المشكلة تحت الكسوف.

أو التمسك بـ 1.5 ولكن قم بإزالة التعليقات التوضيحية Override.

لا أعرف كيف حصل تايلور على الأشياء مع مستوى برنامج التحويل البرمجي Java 1.5. وأظن أن المشروع لن يبني على سطر الأوامر مع JDK 5.


ولكن على عكس إصدار سطر الأوامر من Maven الذي بنى كل شيء تمامًا ، يترك M2Eclipse عددًا كبيرًا من أخطاء البناء في الكود المصدري.

من الصعب القول ما يحدث بالضبط دون رؤية تلك "الأخطاء" (هل هم أخطاء حقًا؟). يرجى تقديم بعض الآثار.

هل من الممكن أن أقوم بتكوين m2eclipse بشكل صحيح؟ كيف يمكنني التحقق من هذا؟

أحد الاختلافات هو أن M2Eclipse يستخدم افتراضيًا إصدارًا مضمنًا من Maven 3 والذي ربما لا يكون نفس الإصدار الذي تستخدمه في سطر الأوامر. يمكنك تغيير ذلك من خلال نافذة V تفضيلات V Maven V تثبيت (وأضف التثبيت الخاص بك):

alt text

ولكن على الرغم من أنني أوصي باستخدام نفس الإصدار تحت Eclipse مقارنةً بسطر الأوامر ، فمن المحتمل جدًا أن يكون هذا السبب الجذري للمشكلة ، يجب أن تعمل Builds Maven 2 على Maven 3 دون مشاكل.

نصائح أخرى

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

تحرير: إنه بالتأكيد. انظر إلى الفصل com.jappstart.service.auth.userDetailsServiceImpl. إنها تريد تجاوز الطريقة public final UserDetails loadUserByUsername(final String username) لكن هذه الطريقة غير موجودة في الواجهة التي ينفذها الفصل وليس لها فئة فائقة.

تحرير: حسنًا ، هذا لا يفسر سبب تبنيه مع Maven المستقل. هذا يعمل أيضا بالنسبة لي. غريب جدا. يبدو أن هناك شيء ما يحدث مع البناء لا يعمل مع M2Eclipse.

تحرير: أنا متأكد تمامًا من أن الرمز يعمل لأنه يتم تعديل رمز bytecode بواسطة المكون الإضافي Datanucleus. عندما أقوم بتشغيل المشروع كبناء Maven (انقر بزر الماوس الأيمن-> Run-> Maven Package) ، فإنه ينشئ الحرب بشكل ناجح مع M2Eclipse. لذلك أعتقد أن المشكلة هي مع M2Eclipse Maven Builder.

ستظهر أخطاء التجاوز إذا تم تكوين Eclipse لاستخدام Java 1.5 بدلاً من 1.6. تحقق من خصائص المشروع.

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