2011-06-03 10 views
12

मैवेन 3 प्रोजेक्ट में pom.xml में निर्भरता परिभाषित कर रहा हूं। निर्भरता इस प्रकार है:मैवेन गलत रेपो में आर्टिफैक्ट की तलाश क्यों कर रहा है?

<dependency> 
    <groupId>org.glassfish.web</groupId> 
    <artifactId>el-impl</artifactId> 
    <scope>runtime</scope> 
    <version>2.2</version> 
</dependency> 

Repostory पोम में वर्णन किया गया इस प्रकार है:

<repository> 
    <id>java.net</id> 
    <name>java.net</name> 
    <url>http://download.java.net/maven/2</url> 
</repository> 

विरूपण साक्ष्य वास्तव में भंडार में मौजूद है। It's easy to check। इसके बावजूद, मेवेन repo1.maven.org से आर्टिफैक्ट प्राप्त करने की कोशिश कर रहा है। इसका कारण क्या हो सकता है? शायद मैं भंडार पहुंच को परिभाषित करने में कुछ महत्वपूर्ण गलती करता हूं? अन्य निर्भरता ठीक लगती है।

Plugin org.mortbay.jetty:maven-jetty-plugin:6.1.26 or one of its 
dependencies could not be resolved: Could not find artifact 
org.glassfish.web:el-impl:jar:2.2 
in central (http://repo1.maven.org/maven2) 

उत्तर

17

repository है कि आप को परिभाषित किया है निर्भरता के लिए प्रयोग किया जाता है, लेकिन plugins के लिए नहीं। इसलिए त्रुटि।

इसका समाधान करने के लिए, आपको pluginRepositories परिभाषित करने की जरूरत:

<project> 
    <!-- ... --> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>{repo.id}</id> 
      <url>{repo.url}</url> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

जहां निर्दिष्ट करना चाहिए करने के लिए के रूप में - pom.xml या settings.xml में, this SO post पढ़ें।

1

आप अपने Maven settings.xml (: M2_HOME/conf Maven फ़ोल्डर में देखो) की जांच की जरूरत है।
डिफ़ॉल्ट भंडारों को स्वयं परिभाषित किया गया है, और मेवेन केंद्रीय भंडार प्राथमिकता ले रहा है।

Maven के settings.xml इस तरह में अपने भंडार को परिभाषित करें:

<profiles> 
<profile> 
    ... 
    <repositories> 
    <repository> 
     <id>Java Net</id> 
     <name>Java Net</name> 
     <releases> 
     <enabled>false</enabled> 
     <updatePolicy>always</updatePolicy> 
     <checksumPolicy>warn</checksumPolicy> 
     </releases> 
     <snapshots> 
     <enabled>true</enabled> 
     <updatePolicy>never</updatePolicy> 
     <checksumPolicy>fail</checksumPolicy> 
     </snapshots> 
     <url>http://download.java.net/maven/2</url> 
     <layout>default</layout> 
    </repository> 
    </repositories> 
    <pluginRepositories> 
    ... 
    </pluginRepositories> 
    ... 
</profile> 

आप शायद तुम्हारा साथ डिफ़ॉल्ट Maven केंद्रीय भंडार स्थान के ऊपर लिख अगर आप ज्यादा विन्यास करने के लिए नहीं करना चाहते हैं कर सकते हैं।

चीयर्स!

संबंधित मुद्दे