Gradle application build does not include own jar - gradle

I'm using gradle to build an application in Kotlin.
When I run the distTar task it successfully builds a tar file but fails to include the application itself.
My build.gradle files looks like this (Somewhat shrunk down because it's from a multi module project originally):
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.41' apply false
id 'org.jetbrains.kotlin.kapt' version '1.3.41' apply false
id 'org.jetbrains.kotlin.plugin.spring' version '1.3.41' apply false
id 'org.jetbrains.kotlin.plugin.allopen' version '1.3.41' apply false
id 'org.springframework.boot' version '2.1.7.RELEASE' apply false
}
apply plugin: 'idea'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.jetbrains.kotlin.jvm'
apply plugin: 'org.jetbrains.kotlin.kapt'
apply plugin: 'org.jetbrains.kotlin.plugin.allopen'
apply plugin: 'org.jetbrains.kotlin.plugin.spring'
apply plugin: 'org.springframework.boot'
apply plugin: 'application'
repositories {
mavenCentral()
jcenter()
maven { url 'https://jitpack.io' }
}
sourceCompatibility = '1.8.0'
compileKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
api 'org.jetbrains.kotlin:kotlin-reflect'
// a whole load more of dependencies
testImplementation 'org.jetbrains.kotlin:kotlin-test'
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
}
distTar {
archiveFileName = 'core.tar'
}
mainClassName = 'core.Application'
The final tar archive includes a lib folder with all my dependencies but not the application jar itself.

Related

Spring Data ElasticSearch override version

i upgraded springboot version 2.6.6 from 2.5.7.
and i'm using spring-data-elasticsearch.
i want to keep spring-data-elasticsearch version ( i'm using 4.2.7 )
so, i configured this.
implementation("org.springframework.data:spring-data-elasticsearch:4.2.7") --> it doesn't work
but my library still using version 4.3.3.
how can i overriding downgrade elastic version?
it's fine to upgrading a version
implementation("org.springframework.data:spring-data-elasticsearch:4.3.4") --> it works
here is my gradle settings
root
buildscript {
ext {
spring_boot_version = '2.6.6'
spring_data_elasticsearch_version = '4.2.7'
query_dsl_version = '4.3.1'
lombok_version = '1.18.12'
poi_version = '4.1.2'
}
}
plugins {
id 'java-library'
id 'org.springframework.boot' version "${spring_boot_version}"
}
subprojects {
version = '1.0.0-SNAPSHOT'
apply plugin: 'idea'
apply plugin: 'java-library'
apply plugin: 'maven-publish'
apply plugin: "org.springframework.boot"
apply plugin: 'groovy'
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
repositories {
mavenLocal()
mavenCentral()
}
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
}
dependencies {
implementation platform("org.springframework.boot:spring-boot-dependencies:${spring_boot_version}")
annotationProcessor platform("org.springframework.boot:spring-boot-dependencies:${spring_boot_version}")
testAnnotationProcessor platform("org.springframework.boot:spring-boot-dependencies:${spring_boot_version}")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
annotationProcessor("com.querydsl:querydsl-apt:${query_dsl_version}:jpa")
annotationProcessor("com.querydsl:querydsl-apt:${query_dsl_version}:general")
annotationProcessor("org.projectlombok:lombok")
annotationProcessor('javax.persistence:javax.persistence-api:2.2')
annotationProcessor('javax.annotation:javax.annotation-api:1.3.2')
testAnnotationProcessor("org.projectlombok:lombok")
testImplementation('org.spockframework:spock-core:2.0-M4-groovy-3.0')
testImplementation('org.spockframework:spock-spring:2.0-M4-groovy-3.0')
}
compileJava.dependsOn(processResources)
}
submodule
dependencies {
implementation("org.springframework.data:spring-data-elasticsearch:4.2.7")
}

intellij Gradle Sync Error : "Could not resolve all artifacts for configuration ':classpath'."

This is my build.gradle
buildscript {
ext {
springBootVersion = '2.1.7.REALEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web:')
testCompile('org.springframework.boot:spring-boot-starter-test:')
}
and this is the Sync ErrorMessage
Could not resolve all artifacts for configuration ':classpath'.
Could not find org.springframework.boot:spring-boot-gradle-plugin:2.1.7.REALEASE.
Searched in the following locations:
- https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.1.7.REALEASE/spring-boot-gradle-plugin-2.1.7.REALEASE.pom
- https://jcenter.bintray.com/org/springframework/boot/spring-boot-gradle-plugin/2.1.7.REALEASE/spring-boot-gradle-plugin-2.1.7.REALEASE.pom
Required by:
project :
Possible solution:
Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
There are clearly declared repositories like mavenCentral() and jcnenter(), but can't build it.
I was told jcenter no longer be serviced, so I changed dependencies and deleted jcenter().
This build is successfully worked.
buildscript {
ext{
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}
test {
useJUnitPlatform()
}

Cannot resolve external dependency org.springframework.boot:spring-boot-dependencies:2.4.1 because no repositories are defined

I created a multimodule spring boot, every module use spring.
My nvoice build.gradle
buildscript {
repositories {
mavenCentral()
}
}
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
allprojects {
group = 'com.torenda'
sourceCompatibility = '11'
}
subprojects {
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
repositories {
mavenCentral()
}
}
bootJar {
enabled = false
}
settings.gradle of nvoice
rootProject.name = 'nvoice'
include ':invoice'
include ':payment'
build.gradle of my invoice module
description = 'invoice'
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'io.r2dbc:r2dbc-postgresql'
runtimeOnly 'org.postgresql:postgresql'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
}
bootJar {
enabled = true
}
When I try to build the app I get
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':bootRunMainClassName'.
Could not resolve all dependencies for configuration ':detachedConfiguration1'.
Cannot resolve external dependency org.springframework.boot:spring-boot-dependencies:2.4.1 because no repositories are defined.
Required by:
project :
Like you can see, repositories is definined in the main gradle file and i added it in the subprojects section too
It works if you move repositories under allprojects and remove buildscript:
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
allprojects {
group = 'com.torenda'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
}
subprojects {
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
}
bootJar {
enabled = false
}

Gradle build doesn't add version to package

I'm creating a REST microservice using Spring Boot 2.0.0.M7 with Gradle 4.2.
When I build from Eclipse or run from console ./gradlew build, the produced package in build/libs is named $app.jar instead of $app-$version.jar.
What am I missing? my build.gradle is the same as the Spring Boot Docker GS guide, and this problem prevent docker image to be built because the jar can't be found.
Here is my build.gradle file:
buildscript {
ext {
springBootVersion = '2.0.0.M7'
springCloudVersion = 'Finchley.M5'
gradleDockerVersion = '0.13.0'
}
repositories {
mavenCentral()
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'https://repo.spring.io/snapshot' }
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/libs-milestone' }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("gradle.plugin.com.palantir.gradle.docker:gradle-docker:${gradleDockerVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'com.palantir.docker'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
jar {
baseName = 'networks'
version = '0.9'
}
group = 'test'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/snapshot' }
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/libs-milestone' }
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'org.springframework.boot:spring-boot-starter-data-rest'
compile 'org.springframework.boot:spring-boot-starter-json'
compile 'org.springframework.boot:spring-boot-starter-actuator'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
runtime 'org.springframework.boot:spring-boot-devtools'
runtime 'org.postgresql:postgresql'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testCompile 'junit:junit'
}
docker {
name "${project.group}/${jar.baseName}"
files jar.archivePath
buildArgs(['JAR_FILE': "${jar.archiveName}"])
}
The version should be specified outside jar:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'com.palantir.docker'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
version = "0.9"
jar {
baseName = 'networks'
}

Spring Batch with Grails

im currently using grails 3.0.3 along with gradle 2.5 and hoping to generate a plugin that will use Spring Batch. I've just created a plugin via the command line, and update the build.gradle with just the
compile "org.springframework.boot:spring-boot-starter-batch"
However the batch folder does not seem to downloaded to the local .m2 cache and therefore the import org.springframework.batch libs not available.
The following is the build.gradle. Just wondering if anybody could suggest the reasons why?
Thanks
buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
mavenCentral()
maven { url "https://repo.grails.org/grails/core" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
}
}
plugins {
id "io.spring.dependency-management" version "0.5.2.RELEASE"
id "com.jfrog.bintray" version "1.2"
}
version "0.1-SNAPSHOT"
group "org.grails.plugins"
apply plugin: 'maven-publish'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "spring-boot"
apply plugin: "org.grails.grails-plugin"
apply plugin: "org.grails.grails-gsp"
// Used for publishing to central repository, remove if not needed
apply from:'https://raw.githubusercontent.com/grails/grails-profile-repository/master/profiles/plugin/templates/grailsCentralPublishing.gradle'
apply from:'https://raw.githubusercontent.com/grails/grails-profile-repository/master/profiles/plugin/templates/bintrayPublishing.gradle'
ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenLocal()
mavenCentral()
maven { url "https://repo.grails.org/grails/core" }
}
dependencyManagement {
imports {
mavenBom "org.grails:grails-bom:$grailsVersion"
}
applyMavenExclusions false
}
dependencies {
provided 'org.springframework.boot:spring-boot-starter-logging'
provided "org.springframework.boot:spring-boot-starter-actuator"
provided "org.springframework.boot:spring-boot-autoconfigure"
provided "org.springframework.boot:spring-boot-starter-tomcat"
provided "org.grails:grails-web-boot"
provided "org.grails:grails-dependencies"
provided 'javax.servlet:javax.servlet-api:3.1.0'
testCompile "org.grails:grails-plugin-testing"
console "org.grails:grails-console"
//compile "org.springframework.boot:spring-boot-starter-batch:1.2.5.RELEASE"
compile "org.springframework.boot:spring-boot-starter-batch"
}
task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}

Resources