سؤال

لماذا في كل مرة أقوم فيها "MVN Jetty: Run" ، يحاول Maven تنزيل بعض التبعيات (Apache POI و OJDBC الجرار)؟ كيف يمكنني تعطيل هذا؟

[INFO] Scanning for projects..    
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[INFO] Building infolitReport
[INFO]    task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
Downloading: http://repository.springsource.com/maven/bundles/release/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/external/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repo1.maven.org/maven2/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/release/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/external/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
[INFO] [aspectj:compile {execution: default}]
هل كانت مفيدة؟

المحلول

كما هو موضح في الفصل 3.5.5. إدارة تبعية مافن:

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

لذلك ، عندما يقوم Maven بتنزيل التبعية جرة ، فإنه لا يقوم فقط بتنزيل جرة ولكن أيضًا ملف POM. هنا ، يحاول Maven تنزيلها ، لكنها غير موجودة (موجودة فقط ملفات JAR). لذلك لن يكتبها مافن في المستودع المحلي ويحاول مرة أخرى في المرة القادمة.

هناك 4 خيارات هنا:

  1. استخدم القطع الأثرية للمواطن الصالح مع ملفات POM (أو اطلب من المسؤول عن حل المشكلة).
  2. استخدم مدير مستودع وإنشاء وتحميل ملفات POM.
  3. قم بإنشاء ملفات POM في مستودعك المحلي (على سبيل المثال باستخدام install:install-file).
  4. العيش معها (تنهد) وركض mvn دون اتصال مع -o خيار لجعله أقل إيلامًا.

نصائح أخرى

لماذا تريد إيقافه؟ يمكنك تشغيله دون تنزيل التبعيات؟ إذا كنت لا تزال ترغب في القيام بذلك

http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

انظر إلى علامات exlude

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

إذا لم يكن لديك دائمًا اتصال بالإنترنت أو ترغب فقط في اختصار وقت البناء الخاص بك ، فيمكنك إلحاقها -o المعلمة التي تعني غير متصل على الانترنت لتشغيل ، على سبيل المثال mvn jetty:run -o

مثال على الإجابة من قبل Pascal Thivent

قم بإنشاء ملفات POM في مستودعك المحلي (على سبيل المثال باستخدام install:install-file)

mvn install:install-file -DgroupId=org.apache.commons -DartifactId=codec -Dversion=1.3 -Dpackaging=jar -Dfile=lib/commons-codec-1.3.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=httpclient -Dversion=3.1 -Dpackaging=jar -Dfile=lib/commons-httpclient-3.1.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=logging -Dversion=1.1 -Dpackaging=jar -Dfile=lib/commons-logging-1.1.jar -DgeneratePom=true
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top