spring-data-jdbc dependency won't work on pom.xml - java

I'm following this guide spring-data-jdbc-ext
and i'm trying to set this dependency on my pom.xml
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jdbc</artifactId>
<version>1.0.0.M2</version>
</dependency>
but i ended up on this error
No such file or directory found on the repository using this maven dependency (provided on the quick start guide).
I'm using Maven version 4.0.0

Add this repository to your pom:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

Related

The best way to get rid from SNAPSHOT version in the dependency

I want to use dependency from the Cloudera Maven repository:
Extract from my pom.xml:
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/cloudera/cloudera-repos/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>0.9.0-cdh4.6.0</version>
</dependency>
It depends on parent "spark-parent" that referenced to parent with SNAPSHOT version.
Extract from spark-parent pom.xml (https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/spark/spark-parent/0.9.0-cdh4.6.0/):
<parent>
<groupId>com.cloudera.cdh</groupId>
<artifactId>cdh-root</artifactId>
<version>4.6.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.spark</groupId>
<artifactId>spark-parent</artifactId>
<version>0.9.0-cdh4.6.0</version>
When I run simple "mvn clean package" I have the error that this SNAPSHOT artifact cannot be found.
What is the simplest way to solve this? A solution must be a change in pom.xml or in the build command.
Thanks.
The Cloudera Maven repository doesn't have the artifact com.cloudera.cdh:cdh-root:pom:4.6.0-SNAPSHOT, therefore you won't be able to build your project using it.
However, you can use the Spring cache of this repository: http://repo.spring.io/cloudera-cache. It contains the missing artifacts. You will also have to enable snapshot dependencies inside your repository:
<repositories>
<repository>
<id>cloudera-cache</id>
<url>http://repo.spring.io/cloudera-cache/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

Maven doesn't find dependency

I added a dependency in maven for servlet as seen here, here and here
Maven doesn't find it :
dependency javax.servlet:javax.servlet-api:3.0.1 not found
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
I tried to add this, which doesn't work :
<repository>
<id>maven2</id>
<url>https://mvnrepository.com</url>
</repository>
or this:
<repository>
<id>maven2</id>
<url>http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/</url>
</repository>
First of all you need to verify if you have Internet connectivity and then you can try to purge and resolve the dependencies in the local Maven repository as there could be some corrupted package, you can try the following command to accomplish this:
mvn dependency:purge-local-repository
Take a look to Purging local repository dependencies for more information.
Use default repostiory:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Don't do like this: http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/
Even you should remove all content of the tag <repositories> or <repository> and all things inside these, Maven will automatic use default configuration.
Reference:
http://maven.apache.org/pom.html#The_Super_POM

Artifact com.oracle.toplink:toplink:jar:10.1.3 not found

I am trying to create a spring 4 project from scratch and maven is unable to resolve the dependency of com.oracle.toplink:toplink:jar:10.1.3
The following are the repositories that I have set in the pom.xml
<repositories>
<repository>
<id>repo2.maven.org</id>
<name>repo2.maveng.org</name>
<url>http://repo2.maven.org/maven2</url>
</repository>
<repository>
<id>repo1.maven.org</id>
<name>repo1.maven.org</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>java.net</id>
<name>java.net</name>
<url>http://download.java.net/maven/2</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>EBR Spring Release Repository</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>EBR External Release Repository</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
</repository>
<repository>
<id>repo.spring.io</id>
<name>repo.spring.io-releases</name>
<url>http://repo.spring.io/ext-release-local</url>
</repository>
</repositories>
Questions:
Which repo should I add to make sure maven resolves this dependency?
Usually, how does one know which repo has a particular artifact belong to?
The error message I see is below. Does this error mean Maven did not try looking up for it in other repositories mentioned?
Could not find artifact com.oracle.toplink:toplink:jar:10.1.3 in repo2.maven.org (http://repo2.maven.org/maven2) -> [Help 1]
The is Oracle toplink - toplink-10.1.3 in maven's Central repository http://repo1.maven.org/maven2. So you just only need to add the dependency in pom.xml, not the repository.
<dependency>
<groupId>com.oracle.toplink</groupId>
<artifactId>toplink</artifactId>
<version>10.1.3</version>
</dependency>
Source:
http://mavenhub.com/mvn/central/com.oracle.toplink/toplink/10.1.3
http://mvnrepository.com/artifact/com.oracle.toplink/toplink/10.1.3

Spring Roo project cannot find org.springframework.roo.annotations:jar:1.2.5.BUILD-SNAPSHOT

I generated a primefaces project via spring-roo. The first thing was to invoke following command without touching generated code:
mvn jetty:run
Maven gave an error indicating that it cannot locate org.springframework.roo:org.springframework.roo.annotations:jar:1.2.5.BUILD-SNAPSHOT dependency. The project contains following repositories:
<repositories>
<repository>
<id>spring-maven-release</id>
<name>Spring Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
</repository>
<repository>
<id>spring-maven-milestone</id>
<name>Spring Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
<repository>
<id>spring-roo-repository</id>
<name>Spring Roo Repository</name>
<url>http://spring-roo-repository.springsource.org/release</url>
</repository>
<repository>
<id>prime-repo</id>
<url>http://repository.primefaces.org</url>
<name>PrimeFaces Maven Repository</name>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-maven-release</id>
<name>Spring Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
</pluginRepository>
<pluginRepository>
<id>spring-maven-milestone</id>
<name>Spring Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</pluginRepository>
<pluginRepository>
<id>spring-roo-repository</id>
<name>Spring Roo Repository</name>
<url>http://spring-roo-repository.springsource.org/release</url>
</pluginRepository>
</pluginRepositories>
Is this any other repository where I can find org.springframework.roo:org.springframework.roo.annotations:jar:1.2.5.BUILD-SNAPSHOT dependency?
I have found why above dependency cannot be found. The generated pom.xml does not contain spring-roo snapshot repository. If you add following dependency, the project compiles:
<repository>
<id>spring-roo-repository-snapshot</id>
<name>Spring Roo Repository</name>
<url>http://spring-roo-repository.springsource.org/snapshot</url>
</repository>
I also forked spring-roo code, fixed the template and sent the fix to be merged. Following github repository contains the fixed spring-roo version:
https://github.com/hkarakose/spring-roo

How to add Spring to new Java Project in Eclipse?

I have Eclipse with m2 plugin and want to make new project with Spring.
In maven central repo are only Spring 1.x and Spring 2.x versions and adding http://maven.springframework.org/milestone to pom.xml don't change anything.
I the central repository there are also the latest final Spring artifacts (3.0.5.RELEASE).
E.g. http://repo1.maven.org/maven2/org/springframework/spring-beans/3.0.5.RELEASE
If you need milestones for 3.1 you should add repository definition to your pom.xml as follows:
<repository>
<id>spring-maven-milestone</id>
<name>Springframework Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
And then you can define the dependency:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.0.M2</version>
</dependency>
There is also repository containing snapshots (nightly):
<repository>
<id>spring-maven-snapshot</id>
<snapshots><enabled>true</enabled></snapshots>
<name>Springframework Maven SNAPSHOT Repository</name>
<url>http://maven.springframework.org/snapshot</url>
</repository>
Seems like you want to use springs own repositories, but you need to add them in your settings.xml file (~/.m2/settings.xml), not in the pom.xml in your project.
<repository>
<id>repository.springframework.maven.release</id>
<name>Spring Framework Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
</repository>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>Spring Framework Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
</repository>

Categories