Could not resolve: org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.0.RELEASE - spring

what is the problem, i just changed group name here, i get could not resolve for springsecuriy extras
i can't see why
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.1.0'
id 'org.hibernate.orm' version '6.1.5.Final'
id 'org.graalvm.buildtools.native' version '0.9.18'
}
group = '*********'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
tasks.named('test') {
useJUnitPlatform()
}
hibernate {
enhancement {
lazyInitialization true
dirtyTracking true
associationManagement true
}
}
Could not resolve all files for configuration ':compileClasspath'. > Could not resolve org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.0.RELEASE. Required by: project : > Could not resolve org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.0.RELEASE. > Could not parse POM repo.maven.apache.org/maven2/org/thymeleaf/extras/… > Could not find org.springframework.security:spring-security-bom:6.0.0-RC2
I tried nothing it is made by spring initializer and boot version 3.0.0

Thymeleaf 3.1.1 is released now, pls use
implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE")
instead of
implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity5")

I resolved problem by changing gradle build
i replaced repositories with this
repositories {
mavenCentral()
maven { url "https://repo.spring.io/milestone"
content {
// Thymeleaf uses 6.0.0-RC2 of Security's bom in its dependency management
includeModule("org.springframework.security", "spring-security-bom")
}
}
}
I hope it help others

Related

Gradle Spring Boot Dependency Not found Multi Module Project

I am trying to set up multimodule project
RootProject Settings
rootProject.name = 'Abc'
include 'catalog'
include 'catalog-common'
Root Project Abc/build.gradle
plugins {
id 'org.springframework.boot' version '2.7.3' apply false
id 'io.spring.dependency-management' version '1.0.13.RELEASE'
id 'java'
}
subprojects {
group = 'com.abc'
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
sourceCompatibility = 1.8
targetCompatibility = 1.8
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencyManagement {
imports {
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
mavenBom "org.springframework.cloud:spring-cloud-dependencies:2021.0.3"
}
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
}
Module catalog-common
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation('org.springframework.boot:spring-boot-starter-validation')
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Module Catalog
plugins {
id 'org.springframework.boot' version '2.7.3'
}
dependencies {
implementation project(':catalog-common')
}
in Catalog Project it is expecting again to define spring dependencies but where as I am able to access java static classes
Please help
It looks like your catalog-common is a kind of "library" module, consumed by other sub-projects (catalog and maybe others). If so, you should use the Java Library plugin which can be used for this purpose. You will then need to configure all dependencies you want to "inherit" in consumer projects using api configuration instead of implementation. Dependencies declared in implementation will not leak into consumer projects, this is the expected Gradle behavior.
In you example, catalog-common build script should look like:
plugins {
id("java-library")
}
dependencies {
// choose between api or implementation, depending on the scope you want for each dependency
api 'org.springframework.boot:spring-boot-starter'
api 'org.springframework.boot:spring-boot-starter-actuator'
api 'org.springframework.boot:spring-boot-starter-web'
implementation('org.springframework.boot:spring-boot-starter-validation')
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.springframework.boot:spring-boot-starter-test'
}
Please note that it seems a bit strange to configure some of the Spring dependencies like actuator in this common library: this should declared only in the main "application" project ( catalog in your case), unless you want to implement some common code depending on actuator in the catalog-common module.

getting springboot to support groovy 4.0 (apache packaging) | needed 3.0.0-M2 and more

spring-boot > 2.3.1 will grab groovy-bom from codehaus instead of org.apache.groovy packaging, even if you declare org.apache.groovy dependendices
I found this means spring-boot > 2.3.1 will not build groovy 4.0
even spring initializr bakes this in... because when you go springboot 2.6.7, initializr is using groovy packaging from org.codehaus. so that limits 2.6.7 to use groovy 3.0.10, as that's the cutoff for groovy to show up in org.apache packaging. and groovy 4.x uses apache packages.
here's the gradle initializr created from this URL
plugins {
id 'org.springframework.boot' version '2.6.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'groovy'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
implementation 'org.codehaus.groovy:groovy'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
Support for Groovy 4 is coming in Spring Framework 6 and Spring Boot 3. It’s currently available in Spring Boot 3.0.0-M2 which is published to https://repo.spring.io/milestone.
you 1st have to change settings.gradle to add the following:
pluginManagement {
repositories {
maven { url 'https://repo.spring.io/milestone' }
gradlePluginPortal()
}
}
Then I had to modify my build.gradle as follows:
plugins {
// id 'org.springframework.boot' version '2.6.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'groovy'
}
plugins {
id 'org.springframework.boot' version '3.0.0-M2'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = javaSrcVersion
targetCompatibility = javaClassVersion
repositories {
mavenCentral()
maven { url("https://repo.spring.io/milestone/")}
}
dependencies {
runtimeOnly('com.h2database:h2')
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
// implementation 'org.codehaus.groovy:groovy'
implementation("org.apache.groovy:groovy:${groovyVersion}")
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation('com.google.code.findbugs:jsr305:latest.integration')
implementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.1.0'
implementation group: 'commons-io', name: 'commons-io', version: '2.11.0'
testImplementation("org.testng:testng:${testNgVersion}")
}
tasks.named('test') {
useJUnitPlatform()
}

Build failed Spring Boot Plugin was not found

I download a repo 'gs-handling-form-submission' from spring.io and now I'm trying to build: gradle build
Following Error has being triggered
* Where:
Build file 'C:\Users\Username\Desktop\gs-handling-form-submission\complete\build.gradle' line: 11
* What went wrong:
Plugin [id: 'org.springframework.boot', version: '2.4.2'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'org.springframework.boot:org.springframework.boot.gradle.plugin:2.4.2')
Searched in the following repositories:
Gradle Central Plugin Repository
I already added a repo url, changed spring.boot version, added buildscript.repositories() at the first line, even doing that, I can't get to compile.
plugins {
id 'org.springframework.boot' version '2.4.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
jcenter()
mavenCentral()
maven {
url: "https://plugins.gradle.org/m2/"
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
Fixing the build.gradle, removing : url, was possible to build
plugins {
id 'org.springframework.boot' version '2.6.3'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
jcenter()
mavenCentral()
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}

Spring Boot Multi Module Gradle Project classpath problem: Package Not Found, Symbol not Found

I have an spring boot gradle project etl with a dependency of common core classes in another project named common.
common/build.gradle
plugins {
id 'net.ltgt.apt' version '0.21'
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id "io.freefair.lombok" version "5.1.0"
id 'java'
id 'idea'
id 'eclipse'
}
group = 'com.intelease'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
jcenter()
mavenCentral()
maven {
name "lightbend-maven-release"
url "https://repo.lightbend.com/lightbend/maven-releases"
}
maven {
name "Sonatype Snapshots"
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
ivy {
name "lightbend-ivy-release"
url "https://repo.lightbend.com/lightbend/ivy-releases"
layout "ivy"
}
}
dependencies {
implementation 'com.typesafe.play:play-java_2.13:2.7.3'
implementation 'com.typesafe.akka:akka-actor-typed_2.13:2.5.23'
implementation "com.typesafe.play:play-guice_2.12:2.6.15"
implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
implementation 'org.neo4j.driver:neo4j-java-driver:1.7.5'
implementation 'org.apache.poi:poi-ooxml:3.17'
implementation 'com.google.maps:google-maps-services:0.13.0'
implementation 'org.apache.commons:commons-text:1.8'
implementation 'com.google.cloud:google-cloud-language:1.19.0'
implementation 'com.google.cloud:google-cloud-vision:1.19.0'
implementation 'technology.tabula:tabula:1.0.2'
implementation 'com.amazonaws:aws-java-sdk:1.11.618'
implementation 'edu.stanford.nlp:stanford-corenlp:3.8.0'
implementation 'nz.ac.waikato.cms.weka:weka-stable:3.8.4'
// https://mvnrepository.com/artifact/com.typesafe.play/play-java
implementation 'org.joda:joda-money:0.11'
implementation 'com.feth:play-easymail_2.12:0.9.0'
implementation 'com.feth:play-authenticate_2.12:0.9.0'
implementation 'org.apache.commons:commons-imaging:1.0-alpha1'
implementation 'com.github.cloudyrock.mongock:mongock-core:3.3.2'
implementation 'com.github.cloudyrock.mongock:mongock-spring:3.3.2'
implementation 'net.logstash.logback:logstash-logback-encoder:5.3'
implementation 'ch.qos.logback:logback-core:1.2.3'
implementation 'ch.qos.logback:logback-classic:1.2.3'
implementation 'com.google.firebase:firebase-admin:6.13.0'
implementation 'org.mapstruct:mapstruct:1.3.1.Final'
implementation 'org.jgrapht:jgrapht-core:1.4.0'
implementation 'org.jgrapht:jgrapht-io:1.4.0'
implementation 'commons-io:commons-io:2.6'
implementation 'org.springframework.guice:spring-guice:1.1.4.RELEASE'
implementation 'com.google.inject:guice:4.2.3'
implementation 'commons-collections:commons-collections:3.2.2'
implementation 'org.aspectj:aspectjrt:1.9.5'
implementation 'org.ghost4j:ghost4j:1.0.1'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final'
testAnnotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final' // if you are using mapstruct in test code
testImplementation 'io.projectreactor:reactor-test:3.3.0.RELEASE'
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.2.0.RELEASE'
testImplementation 'cloud.localstack:localstack-utils:0.1.22'
testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.3'
testImplementation 'net.aichler:jupiter-interface:0.8.3'
testImplementation 'org.mockito:mockito-junit-jupiter:3.0.0'
testImplementation 'org.assertj:assertj-core:3.13.2'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.5.2'
}
etl/settings.gradle:
rootProject.name = 'etl'
includeFlat ('common')
etl/build.gradle:
plugins {
id 'org.springframework.boot' version '2.2.7.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'eclipse'
id 'idea'
id 'java'
}
group = 'com.intelease'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
jcenter()
maven {
name "lightbend-maven-release"
url "https://repo.lightbend.com/lightbend/maven-releases"
}
ivy {
name "lightbend-ivy-release"
url "https://repo.lightbend.com/lightbend/ivy-releases"
layout "ivy"
}
}
ext {
set('springCloudVersion', "Hoxton.SR4")
}
dependencies {
implementation project(':common')
implementation 'org.apache.kafka:kafka-streams'
implementation 'io.debezium:debezium-core:1.1.1.Final'
implementation 'org.springframework.cloud:spring-cloud-stream'
implementation 'org.springframework.cloud:spring-cloud-stream-binder-kafka-streams'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation 'org.springframework.cloud:spring-cloud-stream-test-support'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
test {
useJUnitPlatform()
}
The etl project and common project are just side by side in the same level in file system.
The problem is that whenever I try to build the etl project which is dependent on common, It shows some problem regarding classes that I've expected to be brought and available from common project.
I've included the common into settings.gradle inside etl project with using includeFlat and Couldn't trace any issue with regard gradle multi module inclusion mechanisms.
Whats wrong with this flat multi module ecosystem?
the build script is ./gradlew clean build in the etl folder.
The problem was because of spring boot plugin being present in both etl and common projects. so I found out that in the cammon/build.gradle I have to add this piece of code:
...
bootJar {
enabled = false
}
jar {
enabled = true
}
...

Spring Boot plugin was not found

I have an issue with gradle project
My build.gradle
buildscript {
ext {
springBootVersion = '2.1.8.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath(
"org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
plugins {
id 'org.springframework.boot' version '2.1.8.RELEASE'
}
apply plugin: 'org.springframework.boot'
group = 'com.demo'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'mysql:mysql-connector-java'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
When I try to run build.gralde, I'm getting error
Plugin [id: 'org.springframework.boot', version: '2.1.8.RELEASE'] was not found in any of the following sources:
Gradle preferences in IDEA
I can't understand, what is the problem, I've generated project with Spring Initializer
I think, I've got the problem.
You just need to turn off "Offline Mode" and it will download it from repo
It's in the right side of the Intellij IDEA
A possible explanation is that by configuring explicitly the buildscript.repositories, you no longer have the default gradlePluginPortal().
Not all plugins are available on Maven Central for example.

Resources