মাভেন কেন প্রতিবার ম্যাভেন-মেটাডেটা.এক্সএমএল ডাউনলোড করছে?


116

মাভেনের সাথে ওয়েব অ্যাপ্লিকেশন তৈরি করার চেষ্টা করার সময় আমার ইন্টারনেট সংযোগটি দ্বিধায়িত থাকে যখন নীচে আমি সাধারণত ত্রুটিটি পাই।

আমার প্রশ্নটি হ'ল, একই অ্যাপ্লিকেশনটি আগে তৈরি করা হয়েছিল কেন প্রতিবার মেনকে সবসময় ডাউনলোড করতে হবে।

আমার কনফিগারেশনে কী ভুল হতে পারে যা প্রতিবার ডাউনলোড করার জন্য ম্যাভেনকে তৈরি করে?

আমি অফলাইন তৈরি করার চেষ্টা করার সময় নীচে একটি ত্রুটি পাওয়া যায়:

[INFO] ------------------------------------------------------------------------
[INFO] Building mywebapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://raw.github.com/pagecrumb/mungo/mvn-repo/com/pagecrumb/mungo/0.0.1-SNAPSHOT/maven-metadata.xml

[WARNING] Could not transfer metadata com.mywebapp:mungo:0.0.1-SNAPSHOT/maven-metadata.xml 
from/to mungo-mvn-repo (https://raw.github.com/pagecrumb/mungo/mvn-repo/): raw.github.com
[INFO] 
[INFO] --- maven-war-plugin:2.1.1:war (default-cli) @ mywebapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [mywebapp] in [D:\workspace\web\target\mywebapp-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [D:\workspace\web\src\main\webapp]
[INFO] Webapp assembled in [1237 msecs]
[INFO] Building war: D:\workspace\web\target\mywebapp-1.0-SNAPSHOT.war
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored 
(webxml attribute is missing from war task, 
or ignoreWebxml attribute is specified as 'true')
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building com.mywebapp [com.mywebapp] 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.1/maven-release-plugin-2.1.pom

[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-release-plugin:2.1: Plugin org.apache.maven.plugins:maven-release-plugin:2.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-release-plugin:jar:2.1
Downloading: http://download.java.net/maven/2/org/apache/maven/plugins/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/codehaus/mojo/maven-metadata.xml

397/397 B   

Downloaded: http://download.java.net/maven/2/org/codehaus/mojo/maven-metadata.xml (397 B at 0.0 KB/sec)
[WARNING] Failure to transfer org.apache.maven.plugins:maven-war-plugin/maven-metadata.xml from http://download.java.net/maven/2 was cached in the local repository, resolution will not be reattempted until the update interval of maven2-repository.dev.java.net has elapsed or updates are forced. Original error: Could not transfer metadata org.apache.maven.plugins:maven-war-plugin/maven-metadata.xml from/to maven2-repository.dev.java.net (http://download.java.net/maven/2): download.java.net
[INFO] 
[INFO] --- maven-war-plugin:2.3:war (default-cli) @ mywebapp-build ---
[INFO] Packaging webapp
[INFO] Assembling webapp [mywebapp-build] in [D:\workspace\target\mywebapp-build-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [15 msecs]
[INFO] Building war: D:\workspace\target\mywebapp-build-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] mywebapp ..................................... SUCCESS [27.999s]
[INFO] com.mywebapp [com.mywebapp] ..................... FAILURE [1:00.406s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:41.409s
[INFO] Finished at: Tue May 07 22:13:38 SGT 2013
[INFO] Final Memory: 11M/28M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.3:war 
(default-cli) on project mywebapp-build: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

2
এসএনএপিএসএইচটি-র ক্ষেত্রে মেটাডেটা অ্যাক্সেসের প্রয়োজনে
মাভেনকে

7
কেন জানি না তবে আপনি এটিকে এটিকে এড়াতে পারবেনmvn clean install -o
এন্টি

প্রকৃতপক্ষে, বিল্ডটি যে ত্রুটিটি ব্যর্থ হয়েছিল তা হ'ল "ওয়ার একত্রিত করার সময় ত্রুটি: ওয়েবএক্সএমএল বৈশিষ্ট্যটি প্রয়োজনীয় (বা আপডেট মোডে এক্সিকিউট করা থাকলে প্রাক-বিদ্যমান ওয়েবে-আইএনএফ / ওয়েব.এক্সএমএল)"। সুতরাং আপনি এটি ঠিক করা উচিত। এটি আপনার ইন্টারনেট সংযোগের সাথে সম্পর্কিত বলে আমি ভাবতে পারি না। নির্ভরতা সমাধানের সতর্কতাগুলি হ'ল সতর্কতা। তারা আপনার বিল্ড ব্যর্থতার চূড়ান্ত কারণ নয়।
ফ্রান্স

আপনার দুটি প্রশ্ন মনে হতেই পারে আপনি নিজের প্রশ্নটি পরিষ্কার করতে পারেন: 1) আমার বিল্ড কেন ব্যর্থ হচ্ছে? 2) কেন মেভেনটা মেটাডেটা ডাউনলোড করার চেষ্টা করছে? ব্যবহারকারী 944849 এর উত্তর 2 টি উত্তর দেওয়ার ক্ষেত্রে অনেক বেশি এগিয়ে যায়। যদি এটি আপনার প্রশ্নের উত্তর দেয় তবে আপনার এটি গ্রহণ করা উচিত।
ফ্রান্স

স্ন্যাপশট মেটাডেটা আপডেটটি এড়ানো যায় -nsu, --no-snapshot-updatesবিকল্পটি সহmvn
জনক বান্দারা

উত্তর:


127

উপাদানটির settings.xmlজন্য আপনার (বা, সম্ভবত আপনার প্রকল্পের পিতামাতা বা কর্পোরেট প্যারেন্ট POM) দেখুন <repositories>। এটি নীচের মত কিছু হবে।

<repositories>
    <repository>
        <id>central</id>
        <url>http://gotoNexus</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
        </releases>
    </repository>
</repositories>

<updatePolicy>উপাদান নোট করুন । উদাহরণটি মাভেনকে রিমোট রিপোর সাথে যোগাযোগ করতে বলে (আমার ক্ষেত্রে নেক্সাস, মাভেন সেন্ট্রাল যদি আপনি নিজের রিমোট রেপো ব্যবহার করেন না) কোনও সময় মাভেনকে কোনও বিল্ড চলাকালীন স্ন্যাপশট নিদর্শনটি পুনরুদ্ধার করতে হবে, এটির জন্য আরও নতুন কপি রয়েছে কিনা তা পরীক্ষা করে দেখুন। এর জন্য মেটাডেটা প্রয়োজনীয়। যদি কোনও নতুন অনুলিপি থাকে মাভেন আপনার স্থানীয় রেপোতে এটি ডাউনলোড করে।

উদাহরণস্বরূপ, রিলিজের জন্য, নীতিটি dailyতাই এটি আপনার দিনের প্রথম নির্মাণের সময় পরীক্ষা করবে। ম্যাভেন সেটিংস ডক্সেnever বর্ণিত হিসাবে এটি একটি বৈধ বিকল্পও ।

প্লাগইনগুলি পৃথকভাবে সমাধান করা হয়। আপনি চাইলে বিভিন্ন আপডেট নীতিমালা সহ তাদের জন্যও কনফিগার করা সংগ্রহস্থল থাকতে পারে।

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>http://gotoNexus</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
        </releases>
    </pluginRepository>
</pluginRepositories>

অন্য কেউ -oবিকল্পটি উল্লেখ করেছেন । আপনি যদি এটি ব্যবহার করেন তবে মাভেন "অফলাইন" মোডে চলে। এটি জানেন যে এটির কেবল স্থানীয় রেপো রয়েছে এবং আপনি কোনও আপডেট নীতিই ব্যবহার করেন না কেন তা আর্টফিটগুলি রিফ্রেশ করার জন্য এটি রিমোট রেপোর সাথে যোগাযোগ করবে না।


2
প্রশ্নটি হল: কেন এটি সর্বদা "কখনই হয় না" (যা আমি মনে করি এটি হওয়া উচিত)? আপনার প্রতিদিন বা সর্বদা আপডেটের প্রয়োজন কেন?
লিওন

@ লিওন মিড-ডেভলপমেন্ট চক্র চলাকালীন আপনার প্রকল্পের '-SNAPSHOT' নির্ভরতা থাকতে পারে যার জন্য আপনি সর্বদা সর্বশেষতম নির্মিত সংস্করণটি বেছে নিতে চান - কমপক্ষে, একটি সিআই সিস্টেমে আপনার সম্ভবত বিকাশকারীটির আলাদা পছন্দ থাকতে পারে - ট্রেডিং বিল্ড স্ট্যাবিলিটি বনাম সর্বশেষ পরিবর্তনগুলি পেয়ে যাচ্ছে। ম্যাভেন ডকস (চরিত্রগতভাবে, দুর্ভাগ্যক্রমে) যা পরিষ্কার করতে ব্যর্থ হয় তা হ'ল যদি কিছু সেট না করা থাকে তবে এগুলির জন্য ডিফল্ট মান।
এড র্যান্ডাল

1
সর্বোত্তম অনুশীলন হ'ল একবার প্রকাশিত একটি শিল্পকর্ম কখনই পরিবর্তিত হয় না, সুতরাং <updatePolicy> কখনও নয় </ u> আপডেট পলিসি> তাদের জন্য উপযুক্ত হওয়া উচিত।
এড র্যান্ডাল

তবে আপনি যদি কোনও নতুন প্রকাশে আপনার পম নির্ভরতা আপডেট করেন? এটি কি কখনও আপডেট হবে না?
ফিলিপ রেগো

1
@ ফিলিপরিগো - আপডেটপোসিটি প্রতি-শিল্পকর্মের জন্য প্রযোজ্য। আপনি যদি কোনও সংস্করণ নম্বর বা গোষ্ঠী / আর্টিফ্যাক্ট আইডি পরিবর্তন করেন তবে এটি অন্যরকম শৈল্পিক। আপডেটপলিসি যদি 'কখনই নয়' হয় তবে আর্টফ্যাক্টটি একবার ডাউনলোড করা হবে, যদি না রিফ্রেশটি বাধ্য করা হয় -Uবা স্থানীয় রেপো থেকে আর্টফ্যাক্টটি সরিয়ে না দেওয়া হয় এবং এইভাবে পুনরায় ডাউনলোড করা প্রয়োজন।
ব্যবহারকারী 944849

31

এটি -o,--offline "Work offline"আটকাতে সম্ভবত পতাকা ব্যবহার করা ।

এটার মত:

maven compile -o


আমি বিশ্বাস করি এটির সঠিক উত্তর হওয়া উচিত, কারণ আপনার ইন্টারনেট সংযোগটি দ্বিধায় থাকলে আপনি কেবল এই আদেশটি কল করতে পারেন। এবং
সুতরাং এস

13

আমি মনে করি কারণ আপনি প্লাগইন সংস্করণটি নির্দিষ্ট করেন নি তাই এটি শেষ মেটাতে সম্পর্কিত মেটাডেটা ডাউনলোড শুরু করে।

অন্যথায় আপনি -o ব্যবহার করে স্থানীয় রেপো ব্যবহারকে বাধ্য করার চেষ্টা করেছিলেন?


সুতরাং আপনি প্লাগইন সংস্করণটি কীভাবে নির্দিষ্ট করবেন? আমি নিশ্চিত আমার পিওএম-এ সংস্করণ সেট আছে ... আপনি আরও নির্দিষ্ট করে বলতে পারেন?
কোয়ার্কস

ভাল যদি আপনার versionউপাদানটির ভিতরে কোনও pluginউপাদান থাকে তবে আপনি অবশ্যই এটি কনফিগার করেছেন, যদি আমি ধারণার বাইরে থাকি ... ভাগ্য
গ্যাব

আমার ক্ষেত্রে সংস্করণটি একটি ব্যাপ্তি ছিল [12.1 12.2) এবং মেটাডেটা ক্যাশে 24 ঘন্টা সেট করা হয়েছিল যাতে এটি প্রতিদিন তৈরিতে একটি নতুন সংস্করণ পরীক্ষা করতে পারে
mzzzzb

ডিফল্ট প্লাগইন সম্পর্কে কী? যেমন maven-surefire-common, যা আমি নির্দিষ্ট করে নেই?
ইয়েজিনি

তাদের সংস্করণটি একটি প্রদত্ত মাভেন রিলিজের জন্য স্থির করা হয়েছে তবে আপনি pluginManagementবিভাগটি ব্যবহার করে কোনও আলাদা জোর করতে পারেন
গ্যাব

0

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

আপনার সেটিংস ফাইলটি কীভাবে সেট আপ করবেন তা টিউটোরিয়ালটি এখানে দেওয়া হয়েছে:

http://books.sonatype.com/nexus-book/reference/maven-sect-single-group.html

http://maven.apache.org/repository-management.html


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

1
অপ্রয়োজনীয় ডাউনলোড এড়াতে এবং বিশেষত এই সংস্থার সাথে সুনির্দিষ্ট শিল্পকর্মগুলি (যেমন প্যারেন্ট পোমস এবং অভ্যন্তরীণ মডিউলগুলি) স্থাপন করতে আইএমএইচএইচ রেপো ম্যানেজারটি কেবলমাত্র একটি প্রতিষ্ঠানের ভিতরেই কার্যকর। অন্যথায় আপনার কাছে ইতিমধ্যে স্থানীয় একটি অতিরিক্ত আয়না যুক্ত হওয়ায় কেন?
গ্যাব

@ পুস আমি দেখতে পাচ্ছি না কীভাবে এটি সমস্যার সমাধান করবে। আপনি যদি চান না যে মাভেন মোটেই নেটওয়ার্ক জুড়ে মেটাডেটা পরীক্ষা করে দেখুন, এটি ইন্টারনেট থেকে বা ইন্ট্রানেট রেপো ম্যানেজারের কাছ থেকে যাচাই করে তা বিবেচ্য নয়।
eis

@ এটির জন্য যদি "ইন্টারনেট সংযোগটি অস্বস্তিকর হয়" বা কোনও সংগ্রহস্থল সার্ভার বর্তমানে উপলব্ধ না হয় তবে এটি আপনাকে সহায়তা করবে কারণ আপনি কেবল আপনার ল্যানের মাভেন সংগ্রহস্থল ব্যবস্থাপককে অ্যাক্সেস করছেন।
পুস

@ গ্যাপ যখন উল্লেখ করেছেন যে কারণে রেপো ম্যানেজারগুলি কোনও সংস্থায় বিশেষভাবে কার্যকর হয় তবে একটি রেপো ম্যানেজার স্থিতিশীল এবং পুনরুত্পাদনযোগ্য বিল্ডগুলি অর্জন করাও গুরুত্বপূর্ণ, যা আমি সাধারণত প্রকল্পটির একমাত্র বিকাশকারী এমনকি যদি আমি লক্ষ্য করি। এটি আশ্বাস দেয় যে আমি আমার স্থানীয় রেপো মুছতে পারি এবং এখনও সমস্ত বিল্ড পুনরুত্পাদন করতে সক্ষম এবং অন্যান্য বিকাশকারীরা সহজেই প্রকল্পে যোগদান করতে পারে। জেনকিন্সের সাথে আমি এটির নিশ্চয়তা দিচ্ছি, যা কখনও কখনও স্থানীয়ভাবে সঞ্চালিত হয়, পাশাপাশি রেপো ম্যানেজারকেও অ্যাক্সেস করে এবং আমার প্রকল্পগুলি মুক্তি দিতে সহায়তা করে -> 2 জন ব্যবহারকারী রেপো ম্যানেজারটি অ্যাক্সেস করছে: জেনকিনস এবং আমি নিজেই
পুস

0

ম্যাভেন এটি করে কারণ আপনার নির্ভরতা একটি এসএনএপিএসএইচটি সংস্করণে রয়েছে এবং মভেনের সেই স্ন্যাপশট সংস্করণে কোনও পরিবর্তনগুলি সংগ্রহস্থলটিতে সনাক্ত করার উপায় নেই। আপনার নিদর্শনটি ছেড়ে দিন এবং pom.xML এ সংস্করণটিকে সেই সংস্করণে পরিবর্তন করুন এবং ম্যাভেন আর মেটাডেটা ফাইল আনবে না।

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