Spring Boot quickstart does not exist in maven repository? - java

Looking at Spring Boot here:
http://projects.spring.io/spring-boot/#quick-start
It appears the "Quick Start" says to include:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.0.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
The following are my current repositories:
<repositories>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
I get a connection timed out exception and when I actually look at the repository...
http://repo.spring.io/milestone/org/springframework/boot/spring-boot-starter-parent/
There is no 1.0.1! Is there some other repository that the pom.xml should contain?
Error:
Project build error: Non-resolvable parent POM: Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:1.0.0.RC5 from http://repo.spring.io/
milestone was cached in the local repository, resolution will not be reattempted until the update interval of spring-milestones has elapsed or updates are forced.
Original error: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.0.0.RC5 from/to spring-milestones (http://repo.spring.io/
milestone): connection timed out to http://repo.spring.io/milestone/org/springframework/boot/spring-boot-starter-parent/1.0.0.RC5/spring-boot-starter-
parent-1.0.0.RC5.pom and 'parent.relativePath' points at wrong local POM

It exists in central repository add following to your pom.xml
<project ...>
<repositories>
<repository>
<id>central</id>
<url>http://central.maven.org/maven2/</url>
</repository>
</repositories>
</project>

Related

Intellij cannot find Maven Dependencies in pom.xml

I am new to the spring boot framework and I'm trying to import the Maven libraries, but I keep getting an error with my pom.xml. Please Help!
Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.4.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.0.4.RELEASE from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org
Dependency 'org.springframework.boot:spring-boot-starter-web:' not found less... (Ctrl+F1)
Inspection info: Inspects a Maven model for resolution problems.
Plugin 'org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE' not found less... (Ctrl+F1)
Inspection info: Inspects a Maven model for resolution problems.
Here is my pom.xml below:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cierra</groupId>
<artifactId>spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.4.RELEASE</version>
</plugin>
</plugins>
</build>
</project>
This maybe due to the reason that it is not able to connect and transfer dependencies specified in pom.xml file. The details where it is trying to connect must be mentioned in your settings.xml under .m2 folder
Try adding the pluginRepositories in your pom.xml file:
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
try adding following repository elements inside repositories element in your pom.xml
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
If this set well, change your updatePolicy settings.
<repository>
<id>myRepo</id>
<name>My Repository</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
Refer question.
The problem was I was behind a proxy that was blocking my pom.xml from running properly. After using a VPN to run the application, it works fine now.
Change Your Maven Version Ad Check Again.
Install Maven and Then Go to File/setting/build,execution,.../build Tools/maven
And Change Maven Home Directory to Your Install Maven Directory

repositories vs pluginRepositories in maven settings.xml

I have the below settings.xml file in my ~/.m2/ folder:
<settings>
<profiles>
<profile>
<id>my-repositories</id>
<repositories>
<repository>
<id>thirdparty-repository</id>
<name>Thirdparty repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>thirdparty-plugin-repository</id>
<name>Thirdparty plugin repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>my-repositories</activeProfile>
</activeProfiles>
</settings>
For both repositories the same nexus group repository is used:
https://mynexus/repository/thirdparty/
If I remove the first one: thirdparty-repository I get the below error:
Failed to read artifact descriptor for junit:junit:jar:4.8.2: Could not transfer artifact junit:junit:pom:4.8.2 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Now If I re-enable it and instead remove the other one: thirdparty-plugin-repository I now get this error:
Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Only when I have them both enabled at the same time it works.
Why do I need both repositories and pluginRepositories that points to the same nexus repository?
Suppose that you had defined a plugin with some dependencies. These dependencies will be searched in all of your <pluginRepository> definitions. Something like this:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>io.herd.common</groupId>
<artifactId>common-herd</artifactId>
<version>${common.version}</version>
</dependency>
</dependencies>
</plugin>
Even if you have a <repository> defined which contains the common-herd artifact, Maven will not downloaded it unless you also have a <pluginRepository> containing it. And of course, the common-herd artifact can not be present inside the Maven Central Repository.
I had this problem a few months ago and Maven only downloaded the specific plugin dependency after I added a <pluginRepository>
I had a pb like this, idk if it will help but with this code in my POM.xml my nexus pb were resolved
<distributionManagement>
<repository>
<id>nexus</id>
<name>releases</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Snapshots</name>
<url>https://mynexus/repository/thirdparty/</url>
</snapshotRepository>
</distributionManagement>
and
<!-- download artifacts from this repo -->
<repositories>
<repository>
<id>nexus</id>
<name>Public</name>
<url>https://mynexus/repository/thirdparty/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
hope it helped
In Nexus there is defined a public group which should contain all needed repositories and there should no need to configure this in your own pom nor in the settings.xml file. Only the public group of Nexus should be configured
The only thing you need is to change the url in mirror with your own location...
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

Connecting to Oracle database using spring

I'm trying to connect to a Oracle database for a Maven webapp with spring.
This is in my pom.xml regarding oracle
<dependencies>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ucp</artifactId>
<version>12.1.0.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<name>oracle-maven-repo</name>
<url>https://maven.oracle.com</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
accourding to this blog post:https://blogs.oracle.com/dev2dev/entry/how_to_get_oracle_jdbc
I keep getting this error in Maven:
[ERROR] Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:mav
en-install-plugin:jar:2.4: Could not transfer artifact org.apache.maven.plugins:maven-install-plugin:pom:2.4 from/to maven.oracle.com (https://maven.oracle.com): proxy.mycompany.com:
Unknown host proxy.mycompany.com
In my settings.xml i have 2 lines of code and i can't find any info about them.
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.mycompany.com</host>
<nonProxyHosts>mycompany.com</nonProxyHosts>
</proxy>
What am I supposed to type in host and nonProxyHosts to finally make a connection with my database?

Maven doesn't find last version of a dependency [duplicate]

This question already has answers here:
How to add local jar files to a Maven project?
(36 answers)
Closed 7 years ago.
I have to include fixedformat4j-root dependency in my pom.xml.
I get artifact info (group, version, ...) from the pom.xml of the project homepage:
https://github.com/jeyben/fixedformat4j/blob/master/pom.xml
When I store that info to my pom.xml, I got this error from m2e eclipse plugin:
Missing artifact
com.ancientprogramming.fixedformat4j:fixedformat4j-root:jar:1.4.0-SNAPSHOT
This is my pom.xml
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
...
<dependencies>
...
<dependency>
<groupId>com.ancientprogramming.fixedformat4j</groupId>
<artifactId>fixedformat4j-root</artifactId>
<version>1.4.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray</id>
<url>http://jcenter.bintray.com</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<build>
...
</build>
<reporting>
...
</reporting>
</project>
How can I solve this error? Should I set a new repository? Where can I find the repository url from the project pom.xml?
Neither of the repositories you've listed in your POM contain that version of that artifact. They each contain several release versions, but no snapshots.
Looking at the source for this artifact it does appear to be at version 1.4.0-SNAPSHOT but that version has not been deployed to a repository. Either build it yourself locally (via mvn clean install) or reference one of the versions in the given repositories.

Using SdmxSource jar files in the Nexus Repository through maven (m2eclipse)

The error Missing artifact org.sdmxsource:SdmxApi:jar:1.2.7 appears when defining dependencies in the m2eclipss.
I used this definition:
<dependency>
<groupId>org.sdmxsource</groupId>
<artifactId>SdmxApi</artifactId>
<version>1.2.7</version>
</dependency>
What may cause such a problem? Is there another way to import packages from nexus repository(eclipse IDE)?
Thanks in advance
Have you tried manually downloading the dependencies? See the sdmxsource help page: http://www.sdmxsource.org/sdmxsource-java/.
You could also use the parent tag in pom file:
<parent>
<artifactId>SdmxSourceBase</artifactId>
<groupId>org.sdmxsource</groupId>
<version>1.5.3</version>
</parent>
And the following repository in the maven settings.xml file:
<profiles>
<profile>
<id>sdmxsource</id>
<repositories>
<repository>
<id>MTRepo</id>
<url>http://sdmxsource.metadatatechnology.com/nexus/content/repositories/releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>sdmxsource</activeProfile>
</activeProfiles>

Categories

Resources