Maven Não foi possível resolver dependências, artefatos não puderam ser resolvidos


132

Este deveria ser um projeto de trabalho do meu amigo. Ele demonstrou o projeto bem na minha frente e, em seguida, copiei o projeto, importei-o como um projeto já existente (estou usando o m2eclipseplugin).

E então, esse erro ocorre. Este erro pode ser reproduzido sempre que tento criar algo com o maven.

Fazer dependência mvn: tree, dependency: list ou o pacote de compilação usual, resultará no mesmo erro.

O erro ao executar a compilação 'package' no eclipse é:

[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

E aqui está o conteúdo do 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>

Tentei fazer o download da versão mais recente do maven e a incluí no eclipse helios, mas ainda assim o mesmo problema. A mesma mensagem de erro ocorre mesmo quando eu a executo na linha de comando do shell (fora do eclipse).

o que estou perdendo?


ver o seu caminho no sistema variable.In meu caso o caminho para Maven 3 estava correto em variável de usuário, mas depois de alterar o caminho para maven 2 em variável de sistema que estava trabalhando ideia fine.no porque
Aastha

Respostas:


91

Parece que você está perdendo alguns repositórios do Maven. Peça o seu amigo .m2/settings.xmle você provavelmente desejará atualizar o POM para incluir os repositórios lá.

--edit: depois de pesquisar rapidamente no Google, tente adicionar isso ao seu POM:

<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
Obrigado ! Meu amigo mencionou que funcionava em seu laptop porque ele já tinha as dependências armazenadas em cache no .m2 / e o maven não tenta mais baixá-las. E ele compartilhou as entradas do repositório, algumas são como a sua descoberta e agora funcionou bem agora .. Obrigado pelo seu tempo! E se eu souber, quais palavras-chave você usa para descobrir quais repositórios usar? Também tentei pesquisar no Google ontem, mas acabei infeliz. haha
bertie 11/01

6
Eu sabia que era um problema de repositório por causa das mensagens de aviso "POM para xxx está ausente". Então, eu apenas procurei no "springsource maven" e criei o FAQ do projeto springsource, e sua entrada para configurá-lo para trabalhar com o Maven.
Wmorrell

Seu primeiro erro de artefato é um jar fornecido com.springsource.javax.servlet. Se for fornecido, por que isso tem algo a ver com o setting.xml?
Philip Rego

O @PhilipRego .m2/settings.xmlpode especificar listagens de repositório fora das listagens padrão em repo.maven.apache.org. Nesse caso, os JARs são provenientes de um repositório SpringSource e não estão no Maven Central. Eu supus que o amigo tinha os repositórios SpringSource listados em local .m2/settings.xml, não causando erros de pesquisa porque os artefatos seriam encontrados em repositórios alternativos de inventário. Em vez disso, os JARs foram armazenados em cache e nenhuma pesquisa aconteceu.
Wmorrell

1
@PhilipRego Essas dependências não estão marcadas como fornecidas. Mesmo que a dependência seja fornecida, as definições da interface são necessárias para compilar o código; isso significa que você deve ter os arquivos JAR que definem as interfaces usadas. Tudo o que isso significa para uma dependência fornecida é que os JARs não são fornecidos com o seu código.
Wmorrell 13/03/19

15

O Maven manteve seus arquivos em cache e não tente baixá-los. Você pode simplesmente 'ajudá-lo' manualmente, excluindo o diretório .m2, e então nosso amigo fará o download de tudo sobre as antigas dependências.


7

Como uma fonte alternativa para o mesmo problema, esta resposta cita o uso do Maven 3 versus o Maven 2 como a causa potencial desse problema. Pelo que sei, isso se deve a alterações na resolução do repositório local que foram alteradas no Maven 3. Colocando isso aqui no caso de mais alguém pesquisar no Google e chegar a essa resposta (como eu fiz).


7

As artifactIdde todas as dependências que falharam no download estão incorretas - por algum motivo elas são prefixadas com.springsource. Recortar / colar problema?

Você pode tentar substituí-los da seguinte maneira.

<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>

Você também pode adicionar o repositório central do maven para esses artefatos, caso não estejam disponíveis nos repositórios especificados.

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

Eu tentei isso, e ainda errado? Aqui está a saída parcial do eclipse após a execução de uma tarefa do pacote: Falha ao executar o objetivo no jackpot do projeto: não foi possível resolver as dependências do projeto com.jeteo: jackpot: war: 1.0-SNAPSHOT: Os seguintes artefatos não puderam ser resolvidos: javax.servlet: servlet-api: jar: 2.5.0, javax.servlet: jstl: jar: 1.2.0, javax.transaction: jta: jar: 1.1.0: Falha ao localizar javax.servlet: servlet-api: jar: 2.5.0 em repository.springsource.com/maven/bundles/release foi armazenado em cache no repositório local, resolução não será reattempted até que o intervalo de atualização de <cutted> ....
Bertie

@Albert Kam. Resposta atualizado para incluir referência a maven repositório central para os artefatos desaparecidos
Raghuram

com.springsource prefixo significa que os artefatos são provenientes de repositório primavera empresa
eis

5

Faça o download do jar manualmente e, em seguida, execute o comando na pasta em que o jar está salvo:

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

A jar file, jar_file_name, group_id, artifact_ide version_noestão disponíveis a partir da página do repositório Maven.


4

Eu tive um problema semelhante e o corrigi adicionando os repositórios abaixo no meu pom.xml:

<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

Resolveu o meu problema. Como os repositórios foram armazenados em cache, eu precisei forçá-lo a obter a versão mais recente.


1

Recebi uma mensagem semelhante e meu problema foram algumas preferências de proxy em meu settings.xml. Então eu os desativei e tudo funciona bem.


1

Esse tipo de problema é causado por dois motivos:

  1. o feitiço de uma dependência está errado
  2. a configuração da configuração mvn (ou seja, ~ / .m2 / settings.xml) está incorreta

Se a maioria das dependências puder ser baixada, o motivo 1 pode ser o bug mais provável. Pelo contrário, se a maioria das dependências tiver o problema, você deverá examinar o settings.xml .

Bem, tentei resolver meu problema a tarde toda e finalmente entendi. Meu problema ocorre em settings.xml, não na ortografia perdida ou incorreta de settings.xml , mas na perda de activeProfiles .


0

Eu tive esse problema. No meu caso, foi causado pelo IntelliJ Idea mexendo com alguns dos arquivos pom.xml (que parece gostar de fazer!). Acabei de voltar para a cópia original e as coisas funcionaram novamente!


0

Eu também tive esse problema, porque o NetBeans adicionou algo ao meu arquivo pom.xml. Verifique novamente que nada foi adicionado desde as implantações anteriores bem-sucedidas.


0

Meu projeto EAR tinha 2 módulos * .ear e * .war e recebi esse erro de dependência no *.warprojeto ao tentar mvn eclipse:eclipse. Resolvido, corrigindo o problema de codificação utf-8 no *.warprojeto. mvn -Xou -eopções não ajudaram aqui.


0

Acontece que isso aconteceu por causa do firewall no meu computador. Desligá-lo funcionou para mim.


1
Embora desligar o firewall do seu computador possa funcionar, dependendo da configuração da sua rede, recomendo procurar uma solução mais segura, por exemplo, adicionando uma exceção para o processo de maven ou a central de maven ... Parece uma configuração de firewall mal-configurada / muito estrita para mas eu ainda
Capricórnio

@ Capricorn certo, isso não é o melhor, mas para mim eu tentei todas as soluções recomendadas e simplesmente funciona bem nisso. Se você tiver alguma solução melhor, por favor me diga, obrigado !!! editted: você mencionou "acrescentando uma exceção para o processo maven ou maven central", eu realmente não obtê-lo, você pode especificar estes ...
Duc Thanh

0

Já deparei com essa questão. A causa raiz é a pasta .m2. Você precisa garantir que tudo o que você está tentando acessar esteja presente na pasta .m2 (este é o seu repositório local). Se as coisas estão lá, então você é bom. Isso geralmente está presente na pasta de usuários do seu sistema (seja mac / linux ou até mesmo janelas)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.