Maven Bağımlılıklar çözülemedi, yapılar çözülemedi


132

Bu arkadaşımdan bir çalışma projesi olmalı. Önümde projeyi gösterdi ve sonra projeyi kopyaladım, mevcut bir maven projesi olarak içe aktardım ( m2eclipseeklenti kullanıyorum ).

Ve sonra bu hata oluşur. Bu hata, maven ile bir şeyler inşa etmeye çalıştığım her seferinde yeniden oluşturulabilir.

Mvn bağımlılığı yapmak: ağaç, bağımlılık: liste veya olağan yapı paketi aynı hataya neden olur.

Eclipse'den 'paket' derlemesini çalıştırmanın hatası şudur:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 01:55:41 WIT 2011
[INFO] Final Memory: 2M/56M
[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project jackpot: Could not resolve dependencies 
for project com.jeteo:jackpot:war:1.0-SNAPSHOT: The following artifacts could 
not be resolved: javax.servlet:com.springsource.javax.servlet:jar:2.5.0,
javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0, 
javax.transaction:com.springsource.javax.transaction:jar:1.1.0, 
org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6: Failure to find 
javax.servlet:com.springsource.javax.servlet:jar:2.5.0 in 
http://repository.springsource.com/maven/bundles/release was cached in the 
local repository, resolution will not be reattempted until the update 
interval of com.springsource.repository.bundles.release has elapsed or 
updates are forced -> [Help 1]

[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

Ve işte içeriği pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jeteo</groupId>
    <artifactId>jackpot</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Jackpot Portal Webapp</name>
    <url>http://www.jeteo.com</url>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.0.3.RELEASE</org.springframework-version>
        <org.hibernate-version>3.6.0.Final</org.hibernate-version>
        <org.aspectj-version>1.6.9</org.aspectj-version>
        <org.slf4j-version>1.5.10</org.slf4j-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.jt400</groupId>
            <artifactId>jt400</artifactId>
            <version>6.6</version>
            <scope>compile</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet</artifactId>
            <version>2.5.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
            <version>1.2.0</version>
            <scope>provided</scope>
        </dependency>
        <!--
        <dependency>
         <groupId>javax.persistence</groupId>
         <artifactId>com.springsource.javax.persistence</artifactId>
         <version>1.0.0</version>
         <scope>compile</scope>
        </dependency>
        -->
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>com.springsource.javax.transaction</artifactId>
            <version>1.1.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>com.springsource.slf4j.log4j</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.11</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

    </dependencies>
    <repositories>
        <!-- Spring releases -->
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>Spring Maven Repository Repository</name>
            <url>http://repository.springsource.com/maven/bundles/release</url>
        </repository>
        <!-- For hibernate 3.6 support -->
        <repository>
            <id>jboss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <build>
        <finalName>jackpot</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <url>http://localhost:8080/manager</url>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Maven'in en yeni sürümünü indirmeyi denedim ve onu tutulma heliosuna dahil ettim, ancak yine de aynı sorun. Aynı hata mesajı onu kabuk komut satırında (tutulma dışında) çalıştırdığımda bile oluyor.

Neyi kaçırıyorum?


variable.In maven 3 o fine.no fikir çalışıyordu kullanıcı değişkeni ama sistem değişkeni maven 2 yolunu değiştirdikten sonra doğru benim durum sistemdeki yolunu senin yolunu görmek niçin
Aastha

Yanıtlar:


91

Görünüşe göre bazı Maven depoları eksik. Arkadaşlarınızı sorun .m2/settings.xmlve muhtemelen POM'u depoları içerecek şekilde güncellemek isteyeceksiniz.

--edit: hızlı bir şekilde googling yaptıktan sonra, bunu POM'unuza eklemeyi deneyin:

<repository>
    <id>com.springsource.repository.bundles.release</id>
    <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<repository>
    <id>com.springsource.repository.bundles.external</id>
    <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/external</url>
</repository>

5
Teşekkür ederim ! Arkadaşım, bağımlılıkları zaten .m2 / içinde önbelleğe aldığından ve maven artık bunları indirmeye çalışmadığı için dizüstü bilgisayarında çalıştığını söyledi. Ve arşiv kayıtlarını paylaştı, bazıları sizin bulduğunuz gibi ve şimdi iyi çalıştı .. Zaman ayırdığınız için teşekkürler! Ve eğer biliyorsam, hangi depoları kullanacağımı bulmak için hangi anahtar kelimeleri kullanıyorsunuz? Dün de googling yapmayı denedim ama perişan oldum. haha
bertie

6
"Xxx için POM eksik" uyarı mesajları nedeniyle bunun bir havuz sorunu olduğunu biliyordum. Bu yüzden "springsource maven" ı aradım ve springsource projesi SSS ve Maven ile çalışmak üzere onu kurma girişini buldum.
wmorrell

İlk yapay hatası, sağlanan bir jar com.springsource.javax.servlet'tir. Eğer sağlanmışsa neden setting.xml ile ilgisi olsun?
Philip Rego

@PhilipRego .m2/settings.xml, adresinde standart olanların dışındaki depo listelerini belirleyebilir repo.maven.apache.org. Bu durumda, JAR'lar bir SpringSource deposundan geliyor ve Maven Central'da değil. Arkadaşımın SpringSource depolarının yerel olarak listelendiğini varsaymıştım .m2/settings.xml, bu da herhangi bir arama hatasına neden olmuyordu çünkü yapıtlar alternatif maven depolarında bulunacaktı. Bunun yerine, JAR'lar önbelleğe alındı ​​ve hiçbir arama yapılmadı.
wmorrell

1
@PhilipRego Bu bağımlılıklar sağlandı olarak işaretlenmemiştir. Bağımlılık sağlanmış olsa bile, kodu derlemek için arayüz tanımları gereklidir; bu, kullanılan arayüzleri tanımlayan JAR dosyalarına sahip olmanız gerektiği anlamına gelir. Sağlanan bir bağımlılık için tüm anlamı, JAR'ların kodunuzla paketlenmemesidir.
wmorrell

15

Maven dosyalarınızı önbellekte tuttu ve tekrar indirmeyi denemeyin. .M2 dizinini silerek ona manüel olarak 'yardım edebilirsiniz' ve ardından arkadaşımız her şeyi eski depedanlar üzerinden indirecektir.


7

Aynı soruna alternatif bir kaynak olarak bu yanıt , bu sorunun olası nedeni olarak Maven 3'e karşı Maven 2 kullanılmasını gösteriyor. Anladığım kadarıyla, bu Maven 3'te değiştirilen yerel depo çözünürlüğündeki değişikliklerden kaynaklanıyor. Başkasının Google'da arama yapıp bu yanıta ulaşması durumunda bunu buraya koymak (benim yaptığım gibi).


7

artifactIdİndirmek için başarısız tüm bağımlılıklar için yanlış vardır - onlar ifadesi eklenir nedense com.springsource. Kes / yapıştır sorunu mu yaşıyorsunuz?

Bunları aşağıdaki şekilde değiştirmeyi deneyebilirsiniz.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

Ayrıca, belirtilen depolarda bulunmamaları durumunda bu yapıtlar için maven merkezi deposu eklemek isteyebilirsiniz.

<repository>
    <id>maven2</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>

Bunu denedim ve hala hatalı mı? İşte bir paket görevi yaptıktan sonra tutulmadan elde edilen kısmi çıktı: Proje jackpotunda hedef yürütülemedi: com.jeteo projesi için bağımlılıklar çözülemedi: jackpot: war: 1.0-SNAPSHOT: Aşağıdaki yapılar çözülemedi: javax.servlet: servlet-api: jar: 2.5.0, javax.servlet: jstl: jar: 1.2.0, javax.transaction: jta: jar: 1.1.0: javax.servlet: servlet-api: jar: 2.5.0 bulunamadı içinde repository.springsource.com/maven/bundles/release yerel depoda önbelleğe edildi, çözünürlük .... <cutted> güncelleme aralığına kadar reattempted olmayacak
bertie

@Albert Kam. Eksik eserler için maven merkezi deposuna başvuruyu içerecek şekilde güncellenmiş yanıt
Raghuram

com.springsource öneki, yapıların ilkbahar kurumsal havuzundan geldiği anlamına gelir
eis

5

Kavanozu manuel olarak indirin ve ardından kavanozun kaydedildiği klasörden komutu çalıştırın:

mvn install:install-file -Dfile=*jar_file_name*.jar-DgroupId=*group_id* -DartifactId=*artifact_id* -Dversion=*version_no* -Dpackaging=jar

jar file, jar_file_name, group_id, artifact_idVe version_nomaven depo sayfasından temin edilebilir.


4

Benzer bir sorun yaşadım ve aşağıdaki depoları pom.xml dosyama ekleyerek düzelttim:

<repository>
    <id>org.springframework.maven.release</id>
    <name>Spring Maven Release Repository</name>
    <url>http://repo.springsource.org/libs-release-local</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
</repository>
<!-- For testing against latest Spring snapshots -->
<repository>
    <id>org.springframework.maven.snapshot</id>
    <name>Spring Maven Snapshot Repository</name>
    <url>http://repo.springsource.org/libs-snapshot-local</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
    <id>org.springframework.maven.milestone</id>
    <name>Spring Maven Milestone Repository</name>
    <url>http://repo.springsource.org/libs-milestone-local</url>
    <snapshots><enabled>false</enabled></snapshots>
</repository>

4
mvn clean install -U

Sorunumu çözdüm. Depolar önbelleğe alındığından, en son sürümü almaya zorlamam gerekiyordu.


1

Benzer bir mesaj aldım ve sorunum settings.xml dosyamdaki bazı proxy tercihleriydi. Bu yüzden onları devre dışı bıraktım ve her şey yolunda gidiyor.


1

Bu tür sorunların iki nedeni vardır:

  1. bağımlılığın büyüsü yanlış
  2. mvn ayarının yapılandırması (yani. ~ / .m2 / settings.xml) yanlış

Bağımlılıkların çoğu indirilebiliyorsa, en olası hata 1 nedeni olabilir. Aksine, bağımlılıkların çoğunda sorun varsa, o zaman u settings.xml'e bir göz atmalısınız .

Bütün öğleden sonra sorunumu çözmeye çalıştım ve sonunda anladım. Benim sorunum, settings.xml değil kaybetmek ya da yanlış yazım meydana settings.xml ama kaybetmek activeProfiles .


0

Bu sorunu yaşadım. Benim durumumda, IntelliJ Idea'nın bazı pom.xml dosyalarıyla uğraşmasından kaynaklanıyordu (bunu yapmaktan zevk alıyor gibi görünüyor!). Sadece orijinal kopyaya geri döndüm ve işler tekrar çalıştı!


0

Ben de bu sorunu yaşadım, bunun sebebi NetBeans'ın pom.xml dosyama bir şey eklemesinden kaynaklanıyordu. Önceki başarılı dağıtımlardan bu yana hiçbir şeyin eklenmediğini iki kez kontrol edin.


0

EAR projemde * .ear ve * .war olmak üzere 2 modül vardı ve *.wardenerken projede bu bağımlılık hatasını aldım mvn eclipse:eclipse. *.warProjedeki utf-8 kodlama sorununu düzelterek sorunu çözdü . mvn -Xveya -eseçenekler burada yardımcı olmadı.


0

Bilgisayarımdaki güvenlik duvarı nedeniyle olduğu ortaya çıktı. Kapatmak benim için çalıştı.


1
Bilgisayarınızdaki güvenlik duvarını kapatmak işe yarayabilir, ancak ağ kurulumunuza bağlı olarak daha güvenli bir çözüm aramanızı tavsiye ederim, örneğin maven işlemi veya maven merkezi için bir istisna ekleyerek ... Yanlış yapılandırılmış / çok katı bir güvenlik duvarı kurulumuna benziyor bana rağmen
Oğlak

@ Oğlak doğru, bu en iyisi değil ama benim için önerilen tüm çözümleri denedim ve bu konuda iyi çalışıyor. Daha iyi bir çözümünüz varsa, lütfen bana söyleyin, teşekkür ederim !!! düzenlenmiş: "maven işlemi veya maven merkezi için bir istisna eklemekten" bahsettiniz, gerçekten anlamadım, bunları belirtebilir misiniz ...
Duc Thanh

0

Böyle bir sorunla karşılaştım. Temel neden .m2 klasörüdür. Erişmeye çalıştığınız şeyin .m2 klasörünüzde bulunduğundan emin olmalısınız (bu sizin yerel deponuzdur). Eğer şeyler oradaysa, o zaman iyisin. Bu genellikle sisteminizdeki kullanıcılar klasörünün içinde bulunur (mac / linux veya hatta windows)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.