diff --git a/build-plugins/src/main/groovy/com/cloudogu/scm/JavaModulePlugin.groovy b/build-plugins/src/main/groovy/com/cloudogu/scm/JavaModulePlugin.groovy index 9e3c339c76..ed3950df99 100644 --- a/build-plugins/src/main/groovy/com/cloudogu/scm/JavaModulePlugin.groovy +++ b/build-plugins/src/main/groovy/com/cloudogu/scm/JavaModulePlugin.groovy @@ -26,22 +26,51 @@ package com.cloudogu.scm import com.hierynomus.gradle.license.tasks.LicenseCheck import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.jvm.toolchain.JavaLanguageVersion class JavaModulePlugin implements Plugin { void apply(Project project) { + project.plugins.apply("java") + project.plugins.apply("maven-publish") project.plugins.apply("com.github.hierynomus.license") - project.afterEvaluate { - project.java { - toolchain { - languageVersion = JavaLanguageVersion.of(11) + project.java { + toolchain { + languageVersion = JavaLanguageVersion.of(11) + } + withJavadocJar() + withSourcesJar() + } + + project.compileJava { + options.release = 8 + } + + project.tasks.withType(Javadoc) { + failOnError false + } + + + project.publishing { + publications { + mavenJava(MavenPublication) { + artifactId project.name + project.afterEvaluate { + def component = project.components.findByName("web") + if (component == null) { + component = project.components.java + } + from component + } } } - project.compileJava { - options.release = 8 - } + } + + project.rootProject.publishing.repositories.each { r -> + project.publishing.repositories.add(r) } project.license { diff --git a/build.gradle b/build.gradle index ca6650a967..46c8d814ed 100644 --- a/build.gradle +++ b/build.gradle @@ -24,9 +24,10 @@ plugins { id 'java-platform' + id 'maven-publish' } -subprojects { +subprojects { s -> repositories { maven { url 'https://packages.scm-manager.org/repository/public/' @@ -38,6 +39,20 @@ allprojects { apply from: rootProject.file('gradle/dependencies.gradle') } +publishing { + publications { + mavenJava(MavenPublication) { + artifactId project.name + from components.javaPlatform + } + } + repositories { + maven { + url = "/tmp/repo" + } + } +} + dependencies { constraints { // lombok diff --git a/gradle.properties b/gradle.properties index da9da79d53..212d009095 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,5 +21,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # - +group=sonia.scm version=2.13.0-SNAPSHOT