techdev
techdev

Reputation: 71

Gradle SpringBoot Project : Received status code 501 from server: HTTPS Required

I am trying to build simple hello world spring-boot project with gradle and groovy.
When I run 'gradle clean build', I am getting below error.

So far I tried,

  1. Even though it is a gradle project, I updated the maven version to latest(3.6.3). Just to be a safer side.
  2. I re-installed my intelliJ IDE
  3. I added maven url as "https:" in build.gradle

After above steps, still I am getting below error. I am not sure what else I am missing. Though I have given 'https:' url in gradle build file, I am not sure from where it is taking the non-secure url(http).

Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all dependencies for configuration ':detachedConfiguration1'.
   > Could not resolve org.springframework.boot:spring-boot-dependencies:2.1.1.RELEASE.
     Required by:
         project :
      > Could not resolve org.springframework.boot:spring-boot-dependencies:2.1.1.RELEASE.
         > Could not get resource 'http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.1.1.RELEASE/spring-boot-dependencies-2.1.1.RELEASE.pom'.
            > Could not HEAD 'http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.1.1.RELEASE/spring-boot-dependencies-2.1.1.RELEASE.pom'. Received status code 501 from server: HTTPS Required

And my gradle build file looks:

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
    id 'war'
}

group = 'com.own.test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenLocal()
    maven {
        url = 'https://repo.maven.apache.org/maven2'
    }
}



dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

Upvotes: 2

Views: 3525

Answers (2)

cfrick
cfrick

Reputation: 37008

Using start.spring.io, this is the content of the build.gradle generated there:

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'groovy'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.codehaus.groovy:groovy'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

Note the major differences:

  • groovy is actually there as plugin and as dependency
  • the maven repo is secure. As the error message states, you have use the https endpoint here

Upvotes: 1

techdev
techdev

Reputation: 71

Finally, I figured out where to update the maven url to "https://*" for gradle projects.

$ vi ~/.gradle/init.gradle

then I updated the maven url to secure protocol ("https://...")

allprojects {
    repositories {
            mavenLocal()
            // Any Organization/Company specific repo url goes here
            maven {
                url "https://repo1.maven.org/maven2"
            }
    }
}


After above steps, it worked for me and able to build the spring-boot application successfully.

Upvotes: 3

Related Questions