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] 开发者_如何学Go
[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?
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>
mvn clean install -U
Solved my problem. Since the repos were cached, I needed to force it to get latest version.
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.
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>
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).
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.
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>
Try to run
mvn dependency:purge-local-repository clean install -U
This solved a similar issue that I faced. Lots more info available at https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html. This answer was taken and adapted from a previous answer on a related thread: https://stackoverflow.com/a/33929792/5538923 .
In addition, since I am working under a proxy to connect to internet in Windows, although setting the environment variables HTTP_PROXY, HTTPS_PROXY and NO_PROXY, I had also to set them in the settings.xml file of maven:
<settings>
<proxies>
<proxy>
<id>httpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>your-proxy-host</host>
<port>your-proxy-port</port>
<nonProxyHosts>localhost|*.example.com</nonProxyHosts>
<username>username</username>
<password>password</password>
</proxy>
<proxy>
<id>httpsproxy</id>
<active>true</active>
<protocol>https</protocol>
<host>your-proxy-host</host>
<port>your-proxy-port</port>
<nonProxyHosts>localhost|*.example.com</nonProxyHosts>
<username>username</username>
<password>password</password>
</proxy>
</proxies>
</settings>
This last configuration has been adapted from another answer in Stackoverflow: https://stackoverflow.com/a/13958845/5538923. See details about setting the proxy configuration in Maven here: https://maven.apache.org/guides/mini/guide-proxies.html. Other users found success specify the proxy for Maven setting another environment variable (in Windows) such as (see here: https://stackoverflow.com/a/46244884/5538923):
MAVEN_OPTS
-Dhttp.proxyHost=proxy.myproxy.com -Dhttp.proxyPort=80 -Dhttps.proxyHost=proxy.myproxy.com -Dhttps.proxyPort=80
To me, however, it worked by just settings those values in the C:/Users/myUser/.m2/settings.xml file.
This kind of problems are caused by two reasons:
- the spell of a dependency is wrong
- 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.
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.
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!
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.
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.
Turns out that it happened because of the firewall on my computer. Turning it off worked for me.
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)
I had the same problem, however I fixed this issue by placing settings.xml
file in .m2
folder . This is the exact path where I had placed my settings.xml file C:/Users/myUser/.m2/settings.xml
file.
Just delete or cut the settings.xml file from C:/Users/username/.m2/ folder and it will resolve the issue
精彩评论