147

This is supposed to be a working project from my friend. He demonstrated the project right in front of me, and then I copied the project, imported it as an existing maven project (I'm using m2eclipse plugin).

And then, this error occurs. This error can be reproduced every time I try to build something with maven.

Doing mvn dependency:tree, dependency:list, or the usual build package, will result in the same error.

The error from running the 'package' build from eclipse is:

[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

And here is the content of the 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>

I've tried downloading the newest version of maven, and included it in the eclipse helios, but still the same problem. The same error message happens even when I run it it in the shell command line (outside eclipse).

What am I missing?

M. S.
  • 3,461
  • 10
  • 22
  • 33
Albert Gan
  • 16,262
  • 44
  • 125
  • 177
  • see your path in system variable.In my case the path for maven 3 was correct in user variable but after changing the path to maven 2 in system variable it was working fine.no idea why – aastha Apr 05 '18 at 10:45

14 Answers14

99

Looks like you are missing some Maven repos. Ask for your friend's .m2/settings.xml, and you'll probably want to update the POM to include the repositories there.

--edit: after some quick googling, try adding this to your 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>
wmorrell
  • 4,212
  • 1
  • 25
  • 31
  • 5
    Thank you ! My friend mentioned that it worked in his laptop because he already got the dependencies cached in the .m2/ and maven doesnt try to download them anymore. And he shared the repository entries, some are like your finding, and now it worked fine now .. Thank you for your time ! And if i may know, what keywords do you use to find out what repositories to use ? I tried googling also yesterday, but i ended up miserable. haha – Albert Gan Jan 11 '11 at 07:57
  • 6
    I knew it was a repository problem because of the "POM for xxx is missing" warning messages. So I just searched on "springsource maven" and came up with the springsource project FAQ, and its entry for setting it up to work with Maven. – wmorrell Jan 12 '11 at 02:26
  • His first artifact error is a provided jar com.springsource.javax.servlet. If it's provided why would it have anything to do with setting.xml? – Philip Rego Jan 15 '19 at 18:29
  • @PhilipRego `.m2/settings.xml` can specify repository listings outside of the standard ones at `repo.maven.apache.org`. In this case, the JARs are coming from a SpringSource repository and are not on Maven Central. I had assumed that the friend had the SpringSource repos listed in local `.m2/settings.xml`, causing no lookup errors because the artifacts would be found in alternate maven repos. Instead, the JARs were cached, and no lookups happened at all. – wmorrell Jan 16 '19 at 19:22
  • But why is it connecting to the internet at all for a provided dependency? Maven says about provided: "expect the JDK or a container to provide the dependency at runtime". If the dependency is in the JDK or container why would it try to connect to a repository? – Philip Rego Mar 13 '19 at 19:38
  • 1
    @PhilipRego These dependencies are not marked as provided. Even if the dependency is provided, the interface definitions are required to compile the code; that means you must have the JAR files defining the interfaces used. All it means for a provided dependency is the JARs are not packaged with your code. – wmorrell Mar 13 '19 at 19:55
15

Maven kept your files on cache, and don't retry to download them. You can simply manually 'help' him by deleting the .m2 directory, and then our friend will download everything over the old dependencies.

Grandtour
  • 828
  • 1
  • 7
  • 27
Chaibi Alaa
  • 1,216
  • 4
  • 22
  • 45
11
mvn clean install -U

Solved my problem. Since the repos were cached, I needed to force it to get latest version.

8

The artifactId for all the dependencies that failed to download are incorrect - for some reason they are prefixed with com.springsource. Cut/paste issue?

You can try replacing them as follows.

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

You may also want to add the maven central repository for these artifacts in case they are not available in the specified repositories.

<repository>
    <id>maven2</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>
M. S.
  • 3,461
  • 10
  • 22
  • 33
Raghuram
  • 49,195
  • 9
  • 101
  • 120
  • I tried that, and still errornous ? Here's the partial output from eclipse after doing a package task : 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:servlet-api:jar:2.5.0, javax.servlet:jstl:jar:1.2.0, javax.transaction:jta:jar:1.1.0: Failure to find javax.servlet:servlet-api: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 .... – Albert Gan Jan 11 '11 at 07:46
  • @Albert Kam. Updated answer to include reference to maven central repository for the missing artifacts – Raghuram Jan 11 '11 at 08:00
  • com.springsource prefix means the artifacts are coming from spring enterprise repository – eis Jun 19 '13 at 11:20
7

As an alternative source to the same problem, this answer cites using Maven 3 versus Maven 2 as the potential cause of this issue. Near as I can tell, this is due to changes in local repository resolution that was changed in Maven 3. Putting this here in case anyone else googles for it and reaches this answer (as I did).

Community
  • 1
  • 1
shiri
  • 715
  • 6
  • 22
6

Download the jar manually and then execute the command from the folder where the jar is saved:

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

The jar file, jar_file_name, group_id, artifact_id and version_no are available from the maven repository page.

Nicolás Alarcón Rapela
  • 1,998
  • 1
  • 13
  • 27
Cjo
  • 867
  • 8
  • 19
4

I have had a similar problem and I fixed it by adding the below repos in my 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>
M. S.
  • 3,461
  • 10
  • 22
  • 33
AAgg
  • 464
  • 3
  • 16
2

This kind of problems are caused by two reasons:

  1. the spell of a dependency is wrong
  2. the config of mvn setting (ie. ~/.m2/settings.xml) is wrong

If most of dependencies can be downloaded, then the reason 1 may be the most likely bug. On the contrary, if most of dependencies have the problem, then u should take a look at settings.xml.

Well, I have tried to fix my problem the whole afternoon, and finally I got it. My problem occurs in settings.xml, not the lose or wrong spelling of settings.xml, but the lose of activeProfiles.

Will
  • 129
  • 1
  • 2
1

I've got a similar message and my problem were some proxy preferences in my settings.xml. So i disabled them and everything works fine.

kdoteu
  • 1,467
  • 1
  • 20
  • 26
0

I had this problem. In my case it was caused by IntelliJ Idea messing around with some of the pom.xml files (which it seems to enjoy doing!). I just reverted to the original copy and things worked again!

JonnyRaa
  • 6,268
  • 5
  • 39
  • 43
0

I had this problem as well, it turned out it was because of NetBeans adding something to my pom.xml file. Double check nothing was added since previous successful deployments.

Eduardo Dennis
  • 12,511
  • 11
  • 72
  • 102
0

My EAR project had 2 modules *.ear and *.war and I got this dependency error on *.war project when trying mvn eclipse:eclipse. Resolved it by fixing utf-8 encoding issue in the *.war project. mvn -X or -e options weren't of help here.

Barun
  • 1,320
  • 2
  • 11
  • 18
0

Turns out that it happened because of the firewall on my computer. Turning it off worked for me.

double-beep
  • 3,889
  • 12
  • 24
  • 35
Duc Thanh
  • 11
  • 2
  • 1
    While turning off the firewall on your computer might work, depending on your network setup I would recommend searching for a more secure solution e.g. by adding an exception for the maven process or maven central... Sounds like a misconfigured/very strict firewall setup to me though – Capricorn Aug 24 '18 at 08:22
  • @Capricorn right, this is not the best but for me I tried all the solutions recommended and It just works fine on this. If you have any better solution, please tell me, thank you !!! editted: you mentioned "adding an exception for the maven process or maven central", I don't really get it, can you specify these ... – Duc Thanh Aug 24 '18 at 08:45
0

Have come across such issue. The root cause is the .m2 folder. You gotta make sure that whatever you're trying to access is present there in your .m2 folder (this is your local repo). If the stuff is there then you're good. This is usually present inside of users folder on your system (be it mac/linux or even windows)

Akash Verma
  • 85
  • 3
  • 10