ম্যাভেন আপডেটের পরে জাভা সংস্করণটি স্বয়ংক্রিয়ভাবে জাভা 1.5 তে পরিবর্তিত হবে


120

আমি গ্রহনটিকে আইডিই হিসাবে ব্যবহার করছি। আমি যখন প্রজেক্টে ডান ক্লিক করব এবং তারপরে আমার জাভা সংস্করণটি 1.5 এ পরিবর্তন করুন maven ক্লিক করুন। আমি এখন পর্যন্ত যা করেছি তা এখানে, আমি এখানে তালিকাবদ্ধ সমস্ত পদক্ষেপ অনুসরণ করেছি

http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0-requires-java-1-6-or-newer-in-maven-projects/

  1. আমি "জাভা বিল্ড পাথ" "ওয়ার্কস্পেস ডিফল্ট জের 1.8.0_25" তে পরিবর্তন করেছি
  2. তারপরে "জাভা সংকলক" কে 1.8 এ পরিবর্তন করা হয়েছে
  3. তারপরে "প্রকল্পের দিকগুলি"> জাভা> ১.৮ পরিবর্তন হয়েছে
  4. পোম.এক্সএমএল জাভা সংস্করণকে 1.8 এ পরিবর্তন করা হয়েছে
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.1.3.v20140225</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugin</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

এত কিছুর পরেও যখন আমি "ম্যাভেন আপডেট" ক্লিক করি তখন আমার জাভা সংস্করণটি স্বয়ংক্রিয়ভাবে 1.5 তে পরিবর্তিত হয়। উপরের পদক্ষেপেও, প্রথম দুটি পদক্ষেপের সংস্করণটি স্বয়ংক্রিয়ভাবে 1.5 তে পরিবর্তিত হয়। আমি এটা কিভাবে ঠিক করবো?

উত্তর:


222

আপনার pom.xmlফাইলটি খুলুন এবং এটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

<properties>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

1.8আপনার বর্তমান জেডিকে / জেআরইয়ের জাভা সংস্করণটি কোথায় । এটি করার অন্য একটি উপায় হিসাবে একটি যুক্ত করা <build>হয় ismaven-compile-plugin

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
</plugins>
</build>

সম্পাদনা

আপনি যদি জাভা 9 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>) এর অধীনে জাভা সংস্করণ 9+ এর সাথে কাজ করার উপায় খুঁজছেন দয়া করে @ জেডেলোরিয়ান এর উত্তরটি এখানে নীচে দেখুন এবং তাকেও একটি উচ্চারণ দিতে ভুলবেন না :)


4
আমি মনে করি আমি ইতিমধ্যে দ্বিতীয় উপায়টি করেছি এবং কোডটিও পোস্ট করেছি। আপনি সেই
কোডটিতে

1
হ্যাঁ। আমি যখন উত্তর দিয়েছি আপনি কোড পোস্ট করেন নি। সুতরাং, আমার উত্তরের প্রথম অংশ যুক্ত করুন। propertiesট্যাগ। যদি আপনার পোমটিতে ইতিমধ্যে কোনও propertiesট্যাগ থাকে তবে এটির ভিতরে ট্যাগগুলি যুক্ত করা হয়, এটি ঠিকঠাক কাজ করা উচিত।
জর্জে ক্যাম্পোস

@ asdlfkjlkj আপনার গ্রহটি এম্বেড মেভেন বা একটি বাহ্যিক মাভেন ইনস্টলেশন ব্যবহার করছেন? আরেকটি প্রশ্ন আপনার গ্রহপটি একটি জেআরই বা জেডিকে নির্দেশ করছে? এটি গ্রহন + maven সংক্রান্ত দুটি প্রশ্ন যা সমস্ত পার্থক্য তৈরি করে।
জর্জি ক্যাম্পোস

@ জোর্জ ক্যাম্পোস - আমি একটি নতুন প্রশ্ন পোস্ট করেছি। আপনার কি কিছু ধারণা আছে? stackoverflow.com/questions/42855512/...
Aishu

@JorgeCampos যেখানে আমি খুঁজে না maven-complier-pluginযোগ করার জন্য <build>? ধন্যবাদ
の の 夢

23

আমি জাভা 9 ইনস্টল করার সময় একই সমস্যা ছিল আমার প্রকল্পটি J2SE-1.5 এক্সিকিউশন পরিবেশে ডিফল্ট হবে। আশ্চর্যের বিষয় হল, জাভা 9 কমপ্লায়েন্স স্তরটি পূর্ববর্তী সংস্করণগুলির মতো, যেমন "1.8" নয়, তবে "9" হিসাবে উল্লেখ করা হয়। সুতরাং আমাকে সেই হিসাবে আমার সম্পত্তি এবং মাভেন সংকলক প্লাগইন কনফিগারেশন সরবরাহ করতে হয়েছিল:

<properties>
    <maven.compiler.source>9</maven.compiler.source>
    <maven.compiler.target>9</maven.compiler.target>
</properties>

এবং

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

এটি সমস্যার সমাধান করেছে বলে মনে হচ্ছে।


1
জাভা 10+ এর জন্যও সত্য এবং এটি যোগ করতে চাই যে একটি মাল্টি-মডিউল মাভেন প্রকল্পটি কেবল প্যারেন্ট পিওএমে প্রয়োজন।
mmeany

জাভা 9 এবং তদূর্ধ্বের সাথে একটি নতুন --release <version>সংকলক বিকল্প রয়েছে, যা উত্স / টার্গেটের চেয়ে পছন্দসই। এটি maven.compiler.releaseসম্পত্তি বা <release>ম্যাগন-কম্পাইলার প্লাগইনে সেটিংস সহ কনফিগার করা যেতে পারে । দেখুন: স্ট্যাকওভারফ্লো.com
টমাস টেলর

7

এই সমস্যাটি রুট-কারণ যে যদি কোন কারণে অন্ধকার এর একটি সমাধান করতে পারবে না বৈধ মান maven.compiler.source/ যখন উৎপাদিত পম থেকে .classpath ফাইল আপডেট করার সম্পত্তি, এটা শুধু ব্যবহার ডিফল্ট করবে org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5

@ জোর্জে-ক্যাম্পোস দ্বারা দক্ষতার সাথে উত্তর হিসাবে , সেই সম্পত্তি সেট করার একাধিক উপায় রয়েছে।

যাইহোক, হোর্হে এর উত্তর দাও নি প্রদর্শিত আমার জন্য কাজ করে। এখানে আমার সেটিংস ছিল:

<properties>
    <javaVersion>1.8</javaVersion>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

...

যথাযথভাবে। ${java.version}হয় না (সম্পূর্ণ ভিন্ন) সম্পত্তি সমাধান যাচ্ছে javaVersionএবং অন্ধকার সম্পত্তি উপেক্ষিত এবং ডিফল্ট ব্যবহার করা হয়েছে।

যা আমাকে " কোনও কারণে " অংশে ফিরে এনেছে ; বিকাশকারী বোকামি এই কারণগুলির মধ্যে একটি হতে পারে।


1
Org.eclipse.jdt.launching.JRE_CONTAINER / org.eclipse.jdt.intern.debug.ui.launcher.SandardVMType / J2SE-1.5
নাম

"বিকাশকারী বোকামি সে কারণগুলির মধ্যে একটি হতে পারে" বলার জন্য ডাউনভোটিং।
লুক হাচিসন

আমার ক্ষেত্রে আমি ইক্লিপস প্লাগইনগুলি তৈরি করতে মাভেন / টাইকো ব্যবহার করছি এবং উপরের ডিফল্টটি শেষ পর্যন্ত MANIFEST.MF ফাইলে নির্দিষ্ট করা কার্যকর পরিবেশ থেকে উদ্ভূত হয়েছিল। কার্যকর করার পরিবেশটি জাভাসা -১.৮ এ পরিবর্তন করা সমস্যার সমাধান করেছে।
mat101

3

আপনার পম.এক্সএমএলগুলিতে এই লাইনগুলি যুক্ত করুন, তারপরে আপনার জেআরই সিস্টেম লাইব্রেরি -> বৈশিষ্ট্যগুলিতে ডান ক্লিক করুন -> আপনার সঠিক সম্পাদন পরিবেশটি জাভা 1.8 বা আপনি সেট করতে চান এমন সংস্করণে সেট করুন।

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin> 

আপনার উত্তরটি নিখোঁজ রয়েছে <বিল্ড> <প্লাগিনস> ... আপনার উত্তর এখানে ... </plugins> </build> যা এটি মানুষের জন্য পরিষ্কার উত্তর হয়ে যায়।
কাইল ব্রিজেনস্টাইন

1

আমার এই সমস্যা ছিল আমার ক্ষেত্রে জর্ো ক্যাম্পোসের উপরে উল্লিখিত <প্রপার্টি> ট্যাগ ও নেস্টেড ট্যাগগুলি ভুল জায়গায় ছিল। আমি যদি এগুলিকে পম.এক্সএমএল ফাইলটিতে <hostversion> এবং <নির্ভরতা> ট্যাগগুলির মধ্যে রাখি তবে এই আচরণটি বন্ধ হয়ে গেছে।

যদি এই ফাইলগুলির বৈধতা চালু হয় তবে এটি গ্রহণ করা যাবে।


1

আমি আমার দলের একজন সাথী মেশিনে অনুরূপ সমস্যাটির মুখোমুখি। তিনি Eclipse এর পুরানো সংস্করণ ব্যবহার করছিলেন, আমি বিশ্বাস করি তিনি কেপলার ব্যবহার করেছিলেন। প্রকল্পটি আপডেট হওয়ার পরে জেআরই সংস্করণটি 1.5 এ পরিবর্তন করুন।

সহজভাবে Eclipse এ সর্বশেষ সংস্করণে আপডেট করা এই সমস্যার সমাধান করে।


হ্যাঁ, না আমি নিয়ন চালাচ্ছি, আমার ওয়ার্কস্পেস সেটিংস সমস্ত 1.8, তবে যখন আমি কোনও ম্যাভেন প্রকল্প আমদানি করি (বা আপডেট করি), তখন এক্সপ্লাইস জে 2 এসই-1.5 ব্যবহার করার জন্য জোর দেয়।
এন্টারেস 42

@ আনটারেস 42 আপনি কোনও সমস্যা ছাড়াই কমান্ড লাইন থেকে তৈরি করতে সক্ষম? আপনি কোন এম 2 ই সংস্করণ ব্যবহার করছেন?
ব্যবহারকারী 902383

1
আমি কোনও সমস্যা ছাড়াই কমান্ড লাইনটি (বা বরং "হিসাবে চালান -> ম্যাভেন বিল্ড ...") ব্যবহার করে তৈরি করতে পারি। তবে আমি "ম্যাভেন -> আপডেট প্রকল্প" করার সাথে সাথে আমি জেআরই লাইব্রেরিগুলিকে উল্লিখিত হিসাবে পেয়েছি এবং Eclipse প্রকল্পটি নির্মাণে ব্যর্থ হয়েছে। আমি এখনও মাভেন ব্যবহার করে তৈরি করতে পারি। আমি maven.compiler.sourceউপরের উত্তরে উল্লিখিত সম্পত্তি হিসাবে একবার যুক্ত করলে সবকিছু ঠিকঠাক হয়ে যায়। আমার এম 2 ই সংস্করণটি 1.7.1-20161104-1805।
এন্টারেস 42

1

আমার ক্ষেত্রে (পুরাতন জেবস ডেভেলপার স্টুডিও), ইস্যুটি ছিল জেআরই পরিবেশগুলি ১.৮ (শুধুমাত্র ১.7) অন্তর্ভুক্ত করেনি। আমি যখন maven-compiler-pluginসংস্করণটি 1.7 এ স্যুইচ করেছি এবং মাভেন আপডেট প্রজেক্টটি করেছি তখন এটি এক্সিলিপ জেআরই সিস্টেম লাইব্রেরিটি 1.7 এ আপডেট করেছে। এখানে চিত্র বর্ণনা লিখুন

সুতরাং সমাধানটি হ'ল একটি নতুন আইডিই সংস্করণ পাওয়া যায় যার মধ্যে অন্তর্নির্মিত জেআরই পরিবেশ অন্তর্ভুক্ত থাকে যা ১.৮ বা তার পরে রয়েছে, বা এটি নিজে ইনস্টল করার চেষ্টা করুন (দেখুন https://stackoverflow.com/a/35204314 )


0

আমি নিজেকে জাভা 11 দিয়ে সেই বিষয়টি আপডেট করার অনুমতি দিই।

আমি আমার কম্পিউটারে ওপেনজেডিকে 11 ইনস্টল করেছি এবং আমি এটি একটি অ্যাপ্লিকেশনটিতে ব্যবহার করতে চেয়েছিলাম।

আমার সমস্যা হয়েছিল কারণ আমি যখন মাভেনের সাথে আমার প্রকল্প আপডেট করেছিলাম তখন গ্রহ সবসময় আমার জেআরই-কে জাভ্যাসি -১.৫ এ পরিবর্তন করবে।

আপনি যেমন বলেছিলেন তেমনই আমি সেট করেছিলাম, তবে আমি আমার জাভা বিল্ড পাথ "java-11-openjdk.x86_64" কে আমার আলটারনেট জেআরই হিসাবে সর্বদা নির্বাচন করে যাচ্ছিলাম। আমি "এক্সিকিউশন এনভায়রনমেন্ট" জাভাসি -10 এ নির্বাচন করে আমার সমস্যার সমাধান করেছি (তবে আপনাকে এটিতে ডাবল ক্লিক করতে হবে এবং তারপরে চিত্রের মতো দেখানো হয়েছে একটি উপযুক্ত জেআরই আপনার ওপেনজেডিকে 11 সংস্করণ হিসাবে বেছে নিতে হবে)। এক্সিকিউশন এনভায়রনমেন্ট সেটআপ

প্রকল্পটি জাভা ১১ ব্যবহার করবে (ছবিটির জন্য ধন্যবাদ) তবে আপনাকে pom.xML এ জাভা-সংস্করণের জন্য 10 লিখতে হবে এবং প্রকল্পের দিকগুলিতে জাভা 10 সেট করতে হবে।


0

আমি বাজার থেকে গ্রহটি আপডেট "জাভা 12" ইনস্টল করার বিষয়টি সমাধান করেছি। এটি আমার গ্রহনটি কেপলার থেকে লুনায় চলেছে।

এর পরে, আমি "মেভেন আপডেট" সমস্যাটি স্থির করে স্ট্যান্ডার্ড জেডিকে হিসাবে 1.8 সেট করতে সক্ষম হয়েছি।


-3

আমি গ্রহণটি কেপলার থেকে নিয়নতে পরিবর্তন করেছি এবং তারপরে মাভেন -> আপডেট প্রকল্পের মাধ্যমে আমার প্রকল্পটি আপডেট করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.