I am using shadowJar in my java project. I would like to push the outcome into artifactory.
My gradle script look like this, I am not sure how to connect the dots:
shadowJar {
baseName = 'com.mycompany.myapp'
manifest {
attributes 'Main-Class': 'myapp.starter'
}
}
]
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
apply plugin: 'com.github.johnrengelman.shadow'
// rep for the project
repositories {
mavenCentral()
maven {
url 'http://repo.company:8081/artifactory/libs-release'
credentials {
username = "${repo_user}"
password = "${repo_password}"
}
}
maven {
url 'http://repo.company:8081/artifactory/libs-snapshot'
credentials {
username = "${repo_user}"
password = "${repo_password}"
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar {
classifier "sources"
}
}
}
}
How do I code gradle to take the shadowjar file?
thanks, ray.
The publication
section determines what you're publishing using the maven-publish
plugin.
In your current config, from components.java
is going to publish the default jar artifact of your project and artifact sourceJar
publishes the sourceJar. In order to publish a different jar, you need to modify (or add a new) publication.
shadowJar {
baseName = 'myproject-shadow'
classifier = ''
}
publishing {
publications {
shadow(MavenPublication) {
from components.shadow
artifactId = 'myproject-shadow'
}
}
}
The version used in the name of the jar comes from project.version.