ম্যাভেন-নির্ভরতা-প্লাগইন (লক্ষ্য "কপি-নির্ভরতা", "আনপ্যাক") এম 2 ই সমর্থন করে না


155

আমার কাছে মোটামুটি সরল মাভেন প্রকল্প রয়েছে:

<project>
    <dependencies>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
                        </configuration>    
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

তবে আমি এম 2 স্লিপসে নিম্নলিখিত ত্রুটিটি পেয়েছি:

Description Resource    Path    Location    Type
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. pom.xml  /jasperreports-test line 60 Maven Project Build Lifecycle Mapping Problem

যদি এম 2 স্লিপস এই কাজটি "সমর্থন" না করে তবে আমি কেন যত্ন করব? মাভেন করেন, আর এটাই আমি সত্যই যত্নবান। আমার প্রকল্পে আমি কীভাবে এই ত্রুটিটি পেতে পারি?


4
এই দিনগুলিতে এম 2 ই অসমর্থিত লক্ষ্যটিকে উপেক্ষা করার জন্য আপনার পম.এক্সএমএলে উপযুক্ত কনফিগারেশন যুক্ত করার জন্য একটি কুইকফিক্স সরবরাহ করে।
থোরবজর্ন রাভন অ্যান্ডারসন

@ থরবজরন রাভানএন্ডারসেন, দ্রুত ঠিক কী?
মুহাম্মদ জেলবানা

1
@ মুহাম্মাদগেলবানা গ্রহে একটি "দ্রুত সমাধান" এর অর্থ: সমস্যার উপর কার্সার রেখে দিন; Ctrl-1 টিপুন; দ্রুত ফিক্স চয়ন করুন।
থরবজর্ন রাভন অ্যান্ডারসন

উত্তর:


164

এটি একটি পরিচিত সমস্যা বলে মনে হচ্ছে। আপনি এটিকে উপেক্ষা করার জন্য এম 2 ইকে নির্দেশ দিতে পারেন।

বিকল্প 1: pom.xML

আপনার <build/>ট্যাগের মধ্যে নিম্নলিখিত যুক্ত করুন :

<pluginManagement>
<plugins>
    <!-- Ignore/Execute plugin execution -->
    <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
            <lifecycleMappingMetadata>
                <pluginExecutions>
                    <!-- copy-dependency plugin -->
                    <pluginExecution>
                        <pluginExecutionFilter>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-dependency-plugin</artifactId>
                            <versionRange>[1.0.0,)</versionRange>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                        </pluginExecutionFilter>
                        <action>
                            <ignore />
                        </action>
                    </pluginExecution>
                </pluginExecutions>
            </lifecycleMappingMetadata>
        </configuration>
    </plugin>
   </plugins></pluginManagement>

আপনার ম্যাভেন করতে হবে ... -> এর পরে আপনার প্রকল্পে প্রকল্প কনফিগারেশন আপডেট করুন।

আরও পড়ুন: http://wiki.eclipse.org/M2E_plugin_execution_not_cilers#m2e_maven_plugin_coverage_status

বিকল্প 2: গ্লোবাল ইক্লিপস ওভাররাইড

আপনার পিওএম ফাইলগুলি এড়ানোর জন্য, উপেক্ষা করা ওভাররাইড Eclipse সেটিংসের মাধ্যমে পুরো কর্মক্ষেত্রে প্রয়োগ করা যেতে পারে।

এই ফাইলটি ডিস্কের কোথাও সংরক্ষণ করুন: https://gist.github.com/maksimov/8906462

ইন Eclipse/Preferences/Maven/Lifecycle Mappingsএই ফাইলে ব্রাউজ এবং ওকে ক্লিক করুন:

Elpipse সেটিংস


10
যদি কপি-নির্ভরতাগুলি আপনার ওয়ার ফাইলটি তৈরির গুরুত্বপূর্ণ পদক্ষেপ হয়? আমি মনস্ট্রোসিটির সাথে কল করছি এম 2 এক্সলিপস এবং এমনকি যদি ক্রিয়াকলাপটি সম্পাদন করতে পরিবর্তন করা হয় তবেও গুরুত্বপূর্ণ ফাইলগুলি লক্ষ্য ফোল্ডারে অনুলিপি করা হয় না ...
বার্টভি

1
স্বয়ংক্রিয়ভাবে উত্পন্ন উত্সাহিত সেটিংস, @ ফোনটেক, এম 2e মন্তব্য যোগ করেছেন "এই প্লাগইনটির কনফিগারেশনটি কেবলমাত্র গ্রহন এম 2 ই সেটিংস সঞ্চয় করতে ব্যবহৃত হয় the এটি মাভেন বিল্ডের কোনও প্রভাব নেই" " যদিও এর অর্থ কী তা নিশ্চিত নয়, কারণ আপনি বলছেন যে জিনিসগুলি আপনার জন্য অনুলিপি করা হবে না।
আরজান

6
হ্যাঁ, এটা সাহায্য করেছে ... কিন্তু যে শুধু একটি সতর্কবার্তা পরিত্রাণ পেতে কোডের একটি ভয়াবহ অনেক আছে: পি
dokaspar

এটি এখনও আমাকে একটি সতর্কতা দেয় তবে ত্রুটিটি চলে যায়।
স্টিভক্রস

57

এটি এমপিইইয়ের একটি সমস্যা যা গ্রহন এম 2 ই প্লাগইন এক্সিকিউশনের আওতাভুক্ত নয়

এই সমস্যাটি সমাধান করার জন্য, আপনাকে যা করতে হবে তা হ'ল এটি যে লাইফসাইকেলটি এটি চিনতে পারে না এবং এম 2 ই এটি সম্পাদন করার নির্দেশ দেয়।

তুমি তোমার পরে এই যোগ করা উচিত plugins, ভিতরে build। এটি ত্রুটিটি মুছে ফেলবে এবং এম copy-depencies2 ই এর লক্ষ্যটি স্বীকৃতি দেবে maven-dependency-pluginএবং প্রত্যাশার মতো পিওএমকে কাজ করবে, প্রতিবারই যখন এটি গ্রহণ করবেন তখন এটি ফোল্ডারে নির্ভরতা অনুলিপি করে। আপনি যদি কেবল ত্রুটিটিকে উপেক্ষা করতে চান তবে আপনি এটির <execute />জন্য পরিবর্তন করুন <ignore />। আপনার পরিক্ষেপ জন্য কোন প্রয়োজন নেই maven-dependency-pluginমধ্যে pluginManagement, আগের মত সুপারিশ করেছে।

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <versionRange>[2.0,)</versionRange>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute />
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

4
এটি প্রকৃতপক্ষে সমাধান করে। এবং আমি মূঢ় হচ্ছে ছিল, চিন্তা যখন মানুষ আদান-প্রদান সম্পর্কে কথা বলা হয়েছে <plugins>মধ্যে <pluginManagement>এক আসলে সরানো উচিত <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId>সেখানে। তবে এটি সম্পর্কে <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId>আবদ্ধ হওয়া দরকার <pluginManagement>। এক্সিলিপসে কুইক ফিক্স ব্যবহার করার সময়, এটি নিয়মিত উপরে উপরে যুক্ত করা হয় <plugins>এবং মনে হয় যে অবস্থানটি খুব ভাল কাজ করে। কীটি তখন পরিবর্তন করতে <ignore>হবে <execute>। খুশী হলাম।
আরজান

1
আপনার প্রদত্ত লিঙ্কটির উপর প্রস্তাবিত হিসাবে নির্বাহের মধ্যে আমার <runOnIncremental> মিথ্যা </ translation> প্রয়োজন হয়েছে Found উত্তরের জন্য ধন্যবাদ আমাকে সঠিক পথে নিয়েছে।
সাইবার-সন্ন্যাসী

আপনার pluginsঅভ্যন্তরের পরে এটি যুক্ত করার দরকার নেই build, আপনি এটি আগে যুক্ত করতে পারেন।
ফাগনার ব্র্যাক

38

যদি অনুলিপি-নির্ভরতা, আনপ্যাক, প্যাক ইত্যাদি আপনার প্রকল্পের জন্য গুরুত্বপূর্ণ হয় তবে আপনাকে এড়ানো উচিত নয়। আপনি ঘিরা আপনার আছে <plugins>মধ্যে <pluginManagement>অন্ধকার নীল SR1 সাথে পরীক্ষিত, ম্যাভেন 2.2.1


4
ধন্যবাদ, এটি Eclipse Indigo SR2
স্টেম্ম

1
আমি কিছুটা হারিয়েছি ... তার মানে কি উপরের কোডটি ব্যবহার করে তবে <execute />পরিবর্তে <ignore />? ধন্যবাদ!
xverges

1
আরও কিছু ব্যাখ্যা করার জন্য যত্নশীল? এটির কাজটি করার <plugin>জন্য <pluginManagement>কেবল একটি উল্লেখ করা কিন্তু এখনও উল্লেখ করা, এখনও আমাকে একই সতর্কতা দেয়।
আরজান

@ কায়োটো, সম্ভবত আপনি আরও কিছু জানেন ...? এটি যুক্ত করার পরে <pluginManagement>আমার এখনও একটি "নিয়মিত" 2 লাইন যুক্ত <build><plugins><plugin>...করা দরকার, কনফিগার করা হয়েছে বলে উল্লেখ করা উচিত <pluginManagement>, তাই না? (এখনও এইজন্য জুনো একই জিনিস যখন সম্পর্কে অভিযোগ <pluginManagement>।)
Arjan

@ আরজান আপনার নিজের pluginsট্যাগটি বন্ধ করা উচিত pluginManagement। তবে নীচে দেওয়া উত্তরটি একবার দেখুন, stackoverflow.com/a/12109018/179138 । প্রস্তাবিত ব্যক্তি কার্যকর করাটিকে উপেক্ষা করে, তবে ইক্লিপসে প্লাগইন সম্পাদন করবেন না।
কইও কুনহা

16

এটিকে কাজ করার জন্য, এটিকে উপেক্ষা করার পরিবর্তে আপনি মাভেন-নির্ভরতা-প্লাগইনটির জন্য এম 2 ই সংযোগকারী ইনস্টল করতে পারেন: https://github.com/ianbrandt/m2e-maven-d dependency-plugin

আপনি কীভাবে এটি গ্রহনে করবেন:

  1. উইন্ডো / পছন্দসমূহ / মাভেন / আবিষ্কার / যান
  2. ক্যাটালগ ইউআরএল প্রবেশ করুন: http://download.eclipse.org/technology/m2e/discovery/directory-1.4.xml
  3. ওপেন ক্যাটালগ ক্লিক করুন
  4. এম 2 ই-মেভেন-নির্ভরতা-প্লাগইন চয়ন করুন
  5. উপভোগ

1
ডান উত্তরের জন্য +1। pom.xmlপ্লাগইন ইনস্টল করার পরে কেবল ফাইলটিতে একটি ছোট সম্পাদনা করুন মনে করুন , অন্যথায় ত্রুটিটি নাও যেতে পারে।
ফাগনার ব্র্যাক 14


আমি এটি চেষ্টা করেছি কিন্তু ক্যাটালগ ইউআরএল ক্ষেত্রগুলি সম্পাদনাযোগ্য নয়! খনিটি সেট করা আছে: ডাউনলোড .eclipse.org/technology/m2e/discovery/directory.xml (অর্থাত্ -1.4 ছাড়াই) শেষে। কোন ধারণা, কিভাবে / কোথায় যে এটি সামঞ্জস্য করতে পারে?
এমএমও

8

উপরের কায়ো টনের উত্তর সত্ত্বেও, প্রাথমিকভাবে এটির কাজ করার জন্য আমার এখনও সমস্যা ছিল।

একাধিক চেষ্টার পরে, অবশেষে এটি কাজ করে। এখানে আমার চূড়ান্ত সংস্করণটি আটকানো করছি - আশা করছি এটি কারওর পক্ষে উপকৃত হবে।

    <build> 
        <plugins>
            <!--
            Copy all Maven Dependencies (-MD) into libMD/ folder to use in classpath via shellscript
             --> 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/libMD</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <!--  
        Above maven-dependepcy-plugin gives a validation error in m2e. 
        To fix that, add the plugin management step below. Per: http://stackoverflow.com/a/12109018
        -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-dependency-plugin</artifactId>
                                        <versionRange>[2.0,)</versionRange>
                                        <goals>
                                            <goal>copy-dependencies</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

আপনি কি অনুগ্রহ করে গ্রহনে মৃত্যুর জন্য লক্ষ্য সরবরাহ করতে পারেন?
জেস

1

গ্রহনে হ্যাডোপ প্রকল্পটি লোড করার চেষ্টা করার সময় আমারও একই সমস্যা ছিল। আমি উপরের সমাধানগুলি চেষ্টা করেছিলাম, এবং আমি বিশ্বাস করি এটি সম্ভবত একিপ্পেস কেপলারে কাজ করেছে ... এখন পর্যন্ত নিশ্চিত নয় (অনেকগুলি জিনিস চেষ্টা করেও)।

আমার যে সমস্ত সমস্যার মুখোমুখি হচ্ছিল, সেগুলি নিয়ে আমি সিদ্ধান্ত নিয়েছিলাম এক্সিলিপ লুনায় চলে যাব এবং উপরের সমাধানগুলি আমার পক্ষে কার্যকর হয়নি।

আর একটি পোস্ট ছিল যা প্যাকেজে ... ট্যাগ পরিবর্তন করার প্রস্তাব দিয়েছিল। আমি এটি করা শুরু করেছিলাম এবং এটি ত্রুটিগুলি "সাফ" করবে ... তবে, আমি ভাবতে শুরু করি যে পরিবর্তনগুলি পরে আমাকে কামড় দেবে - আমি মাভেনের বিশেষজ্ঞ নই।

ভাগ্যক্রমে, আমি খুঁজে পেয়েছি কীভাবে সমস্ত ত্রুটি মুছে ফেলা যায়। উইন্ডো-> পছন্দসমূহ-> Maven-> ত্রুটি / সতর্কতা এ যান এবং "প্লাগইন সম্পাদন লাইফসাইকেলের দ্বারা আচ্ছাদিত নয় ..." বিকল্পটিকে "উপেক্ষা করুন" তে পরিবর্তন করুন। আশা করি এটা সাহায্য করবে.


0

আমি জানি এটি পুরানো পোস্ট তবে আমি এই সমস্যাটির সাথেও আজ লড়াই করেছি এবং আমি এই পৃষ্ঠা থেকে টেমপ্লেট ব্যবহার করেছি: http://maven.apache.org/plugins/maven-d dependency-plugin / usage.html

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.7</version>
        <executions>
          <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>[ groupId ]</groupId>
                  <artifactId>[ artifactId ]</artifactId>
                  <version>[ version ]</version>
                  <type>[ packaging ]</type>
                  <classifier> [classifier - optional] </classifier>
                  <overWrite>[ true or false ]</overWrite>
                  <outputDirectory>[ output directory ]</outputDirectory>
                  <destFileName>[ filename ]</destFileName>
                </artifactItem>
              </artifactItems>
              <!-- other configurations here -->
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

এবং সবকিছু m2e1.3.1 এর অধীনে সূক্ষ্মভাবে কাজ করে ।

আমি যখন ব্যবহার করার চেষ্টা করেছি

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
                    </configuration>    
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

আমিও m2eত্রুটি পেয়েছি ।


হ্যাঁ, এই এন্ট্রিটির ঠিক এটি উদ্দেশ্য: এম 2 ই-তে এখন Elpipse build lifecycle এ প্লাগইন সম্পাদনকে ম্যাপ করার জন্য সংযোগকারীগুলির প্রয়োজন । <br/> এমনকি আমার মন্তব্য লেখার সময়, এম 2e কেবল এই জাতীয় কয়েকটি সংযোজককে সমর্থন করে: আপনাকে lifecycle-mappingঅসমর্থিত প্লাগইন (এখানে maven-dependency-plugin)
অলিভিয়ার বি

0

আরেকটি বিকল্প হ'ল সমস্যা ট্যাবে নেভিগেট করা, ত্রুটিটিতে ডান ক্লিক করুন, দ্রুত ফিক্স প্রয়োগ করুন ক্লিক করুন। এইটিকে উপেক্ষা করা এক্সএমএল কোড উত্পন্ন করা উচিত এবং এটি আপনার জন্য .pom ফাইল প্রয়োগ করা উচিত।

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