diff --git a/.travis.yml b/.travis.yml
index cb842aca7e1..79f2114100b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -133,24 +133,32 @@ script:
- mvn --quiet --batch-mode --show-version verify -Psamples
after_success:
# push to maven repo
- - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
- if [ "$TRAVIS_BRANCH" = "master" ]; then
+ - if [ $SONATYPE_USERNAME ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
+ if [ "$TRAVIS_BRANCH" = "master" ] && [ -z $TRAVIS_TAG ]; then
+ echo "Publishing from branch $TRAVIS_BRANCH";
mvn clean deploy -DskipTests=true -B -U -P release --settings CI/settings.xml;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
pushd .;
cd modules/openapi-generator-gradle-plugin;
- ./gradlew -Psigning.keyId="$SIGNING_KEY" -Psigning.password="$SIGNING_PASSPHRASE" -Psigning.secretKeyRingFile="${TRAVIS_BUILD_DIR}/sec.gpg" -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" uploadArchives --no-daemon;
- echo "Finished ./gradlew uploadArchives";
+ ./gradlew -Psigning.keyId="$SIGNING_KEY" -Psigning.password="$SIGNING_PASSPHRASE" -Psigning.secretKeyRingFile="${TRAVIS_BUILD_DIR}/sec.gpg" -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" publishPluginMavenPublicationToNexusRepository closeAndReleaseRepository --no-daemon;
+ echo "Finished ./gradlew publishPluginMavenPublicationToNexusRepository closeAndReleaseRepository";
popd;
- elif ([[ "$TRAVIS_BRANCH" =~ ^[0-9]+\.[0-9]+\.x$ ]]) ; then
+ elif [ -z $TRAVIS_TAG ] && [[ "$TRAVIS_BRANCH" =~ ^[0-9]+\.[0-9]+\.x$ ]]; then
+ echo "Publishing from branch $TRAVIS_BRANCH";
mvn clean deploy --settings CI/settings.xml;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
pushd .;
cd modules/openapi-generator-gradle-plugin;
+ ./gradlew -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" publishPluginMavenPublicationToNexusRepository closeAndReleaseRepository --no-daemon;
+ echo "Finished ./gradlew publishPluginMavenPublicationToNexusRepository closeAndReleaseRepository";
+ popd;
+ fi;
+ if [ -n $TRAVIS_TAG ] && [[ "$TRAVIS_TAG" =~ ^[v][0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+ echo "Publishing the gradle plugin to Gradle Portal on tag $TRAVIS_TAG (only)";
+ pushd .;
+ cd modules/openapi-generator-gradle-plugin;
./gradlew -Psigning.keyId="$SIGNING_KEY" -Psigning.password="$SIGNING_PASSPHRASE" -Psigning.secretKeyRingFile="${TRAVIS_BUILD_DIR}/sec.gpg" publishPlugins -Dgradle.publish.key=$GRADLE_PUBLISH_KEY -Dgradle.publish.secret=$GRADLE_PUBLISH_SECRET --no-daemon;
echo "Finished ./gradlew publishPlugins (plugin portal)";
- ./gradlew -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" uploadArchives --no-daemon;
- echo "Finished ./gradlew uploadArchives";
popd;
fi;
fi;
diff --git a/modules/openapi-generator-gradle-plugin/build.gradle b/modules/openapi-generator-gradle-plugin/build.gradle
index 346deef7c4b..405456bfe1b 100644
--- a/modules/openapi-generator-gradle-plugin/build.gradle
+++ b/modules/openapi-generator-gradle-plugin/build.gradle
@@ -1,5 +1,5 @@
buildscript {
- ext.kotlin_version = '1.2.60'
+ ext.kotlin_version = '1.2.61'
repositories {
mavenCentral()
maven {
@@ -11,14 +11,13 @@ buildscript {
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
- maven {
- url "https://plugins.gradle.org/m2/"
- }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "gradle.plugin.org.gradle.kotlin:gradle-kotlin-dsl-plugins:1.0-rc-3"
classpath "com.gradle.publish:plugin-publish-plugin:0.10.1"
+ classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.20.0"
+ classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.2.0"
}
}
@@ -35,10 +34,11 @@ ext.isReleaseVersion = !version.endsWith("SNAPSHOT")
apply plugin: 'com.gradle.plugin-publish'
apply plugin: 'java-gradle-plugin'
-apply plugin: 'maven'
apply plugin: 'signing'
apply plugin: 'kotlin'
apply plugin: "org.gradle.kotlin.kotlin-dsl"
+apply plugin: 'io.codearte.nexus-staging'
+apply plugin: "de.marcphilipp.nexus-publish"
sourceCompatibility = 1.8
targetCompatibility = 1.8
@@ -87,6 +87,65 @@ test {
}
}
+task javadocJar(type: Jar) {
+ from javadoc
+ classifier = 'javadoc'
+}
+
+task sourcesJar(type: Jar) {
+ from sourceSets.main.allSource
+ classifier = 'sources'
+}
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ from components.java
+ artifact sourcesJar
+ artifact javadocJar
+ pom {
+ name = 'OpenAPI-Generator Contributors'
+ description = project.description
+ url = 'https://openapi-generator.tech'
+ organization {
+ name = 'org.openapitools'
+ url = 'https://github.com/OpenAPITools'
+ }
+ licenses {
+ license {
+ name = "The Apache Software License, Version 2.0"
+ url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
+ distribution = "repo"
+ }
+ }
+ developers {
+ developer {
+ id = "openapitools"
+ name = "OpenAPI-Generator Contributors"
+ email = "team@openapitools.org"
+ }
+ }
+ scm {
+ url = 'https://github.com/OpenAPITools/openapi-generator'
+ connection = 'scm:git:git://github.com/OpenAPITools/openapi-generator.git'
+ developerConnection = 'scm:git:ssh://git@github.com:OpenAPITools/openapi-generator.git'
+ }
+ issueManagement {
+ system = 'GitHub'
+ url = 'https://github.com/OpenAPITools/openapi-generator/issues'
+ }
+ }
+ }
+ }
+}
+
+nexusPublishing {
+ username = ossrhUsername
+ password = ossrhPassword
+ stagingProfileId = "org.openapitools"
+ packageGroup = "org.openapitools"
+}
+
gradlePlugin {
plugins {
openApiGenerator {
@@ -109,6 +168,7 @@ pluginBundle {
displayName = 'OpenAPI Generator Gradle Plugin'
tags = ['openapi-3.0', 'openapi-2.0', 'openapi', 'swagger', 'codegen', 'sdk']
version = "$openApiGeneratorVersion"
+ group = "org.openapitools"
}
}
}
@@ -119,79 +179,8 @@ pluginBundle {
// or stored as key=value pairs in ~/.gradle/gradle.properties
// You can also apply them in CI via environment variables. See Gradle's docs for details.
signing {
- required { isReleaseVersion && gradle.taskGraph.hasTask("uploadArchives") }
- sign configurations.archives
-}
-
-task javadocJar(type: Jar) {
- classifier = 'javadoc'
- from javadoc
-}
-
-task sourcesJar(type: Jar) {
- from sourceSets.main.allSource
- classifier = 'sources'
-}
-
-artifacts {
- archives javadocJar, sourcesJar
-}
-
-def pomConfig = {
- description project.description
- name 'OpenAPI-Generator Contributors'
- url 'https://openapi-generator.tech'
- organization {
- name 'org.openapitools'
- url 'https://github.com/OpenAPITools'
- }
- licenses {
- license {
- name "The Apache Software License, Version 2.0"
- url "http://www.apache.org/licenses/LICENSE-2.0.txt"
- distribution "repo"
- }
- }
- developers {
- developer {
- id "openapitools"
- name "OpenAPI-Generator Contributors"
- email "team@openapitools.org"
- }
- }
- scm {
- url 'https://github.com/OpenAPITools/openapi-generator'
- connection 'scm:git:git://github.com/OpenAPITools/openapi-generator.git'
- developerConnection 'scm:git:ssh://git@github.com:OpenAPITools/openapi-generator.git'
- }
- issueManagement {
- system 'GitHub'
- url 'https://github.com/OpenAPITools/openapi-generator/issues'
- }
-}
-
-uploadArchives {
- repositories {
-
- // credentials here would need to be passed along with the gradle command:
- // ./gradlew -P ossrhUsername=yourUser
- // or stored in ~/.gradle/gradle.properties as key=value pairs
- mavenDeployer {
- beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
- repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
- authentication(userName: ossrhUsername, password: ossrhPassword)
- }
- snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
- authentication(userName: ossrhUsername, password: ossrhPassword)
- }
-
- pom.withXml {
- def root = asNode()
- root.appendNode('description', project.description)
- root.children().last() + pomConfig
- }
- }
- }
+ required { isReleaseVersion && (gradle.taskGraph.hasTask("publishPluginMavenPublicationToNexusRepository") ) }
+ sign publishing.publications.mavenJava
}
compileKotlin {
@@ -205,4 +194,19 @@ compileTestKotlin {
}
}
-uploadArchives.dependsOn 'check'
+javadoc {
+ if(JavaVersion.current().isJava9Compatible()) {
+ options.addBooleanOption('html5', true)
+ }
+}
+
+tasks {
+ closeRepository {
+ onlyIf { nexusPublishing.useStaging.get() }
+ }
+ releaseRepository{
+ onlyIf { nexusPublishing.useStaging.get() }
+ }
+}
+
+publishToNexus.dependsOn 'check'
diff --git a/modules/openapi-generator-gradle-plugin/pom.xml b/modules/openapi-generator-gradle-plugin/pom.xml
index 1e334058eea..f71f96b6e23 100644
--- a/modules/openapi-generator-gradle-plugin/pom.xml
+++ b/modules/openapi-generator-gradle-plugin/pom.xml
@@ -72,7 +72,7 @@
clean
assemble
- install
+ publishToMavenLocal
diff --git a/modules/openapi-generator-gradle-plugin/settings.gradle b/modules/openapi-generator-gradle-plugin/settings.gradle
index 563879e5d5d..dfb2ecf250c 100644
--- a/modules/openapi-generator-gradle-plugin/settings.gradle
+++ b/modules/openapi-generator-gradle-plugin/settings.gradle
@@ -1,2 +1,3 @@
rootProject.name = 'openapi-generator-gradle-plugin'
+enableFeaturePreview('STABLE_PUBLISHING')