plugins { // Apply the java-library plugin to add support for Java Library id 'java-library' } // Set version of programm // version = "1.0.0" def version = "1.0.0" group = "de.rpjosh" // ----- // sourceCompatibility = 11 targetCompatibility = 11 // create a single .jar with all dependencies // task fatJar(type: Jar) { classifier = '' manifest { attributes( 'Implementation-Title': 'installer', 'Implementation-Version': version, 'Implementation-Group': project.group, ) } archivesBaseName = "installer" from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } { exclude "META-INF/*.SF" exclude "META-INF/*.DSA" exclude "META-INF/*.RSA" } with jar } task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { manifest { attributes( 'Implementation-Title': 'installer', 'Implementation-Version': version, 'Implementation-Group': project.group, ) } classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives fatJar archives sourcesJar archives javadocJar } // the created jar file will be copied automatically into the release directory task copyJar(type: Copy) { from file("$buildDir/libs/installer-" + version + ".jar"), file("$buildDir/libs/installer-" + version + "-javadoc.jar"), file("$buildDir/libs/installer-" + version + "-sources.jar") into file("$buildDir/../release") } // build the maven repo file structure -> Javadoc can be used easily in eclipse task copyJarToMaven (type: Copy) { from file("$buildDir/libs/installer-" + version + ".jar"), file("$buildDir/libs/installer-" + version + "-javadoc.jar"), file("$buildDir/libs/installer-" + version + "-sources.jar") into file("$buildDir/../release/mavenRepo/de/rpjosh/installer/" + version) } build.finalizedBy copyJar build.finalizedBy copyJarToMaven repositories { mavenCentral() } dependencies { // Use JUnit test framework testImplementation 'junit:junit:4.12' // https://mvnrepository.com/artifact/com.github.vatbub/mslinks api group: 'com.github.vatbub', name: 'mslinks', version: '1.0.6.2' // https://mvnrepository.com/artifact/commons-io/commons-io api group: 'commons-io', name: 'commons-io', version: '2.10.0' } tasks.named('jar') { manifest { attributes( 'Implementation-Title': 'installer', 'Implementation-Version': version, 'Implementation-Group': 'de.rpjosh', ) } }