From 94ab2fa7a8915a74711bcf4ce5808f04ed438223 Mon Sep 17 00:00:00 2001 From: Daniel Stonier <d.stonier@gmail.com> Date: Mon, 23 Sep 2013 17:30:58 +0900 Subject: [PATCH] use maven-publish plugin for publishing rosjava packages. --- CMakeLists.txt | 2 +- build.gradle | 16 +++++++++---- .../ros/gradle_plugins/RosJavaPlugin.groovy | 24 +++++++++++++++++-- .../org/ros/gradle_plugins/RosPlugin.groovy | 9 +------ message_generation/build.gradle | 7 ------ 5 files changed, 36 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 237f71a..0538e08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ project(rosjava_bootstrap) find_package(catkin REQUIRED rosjava_build_tools) -catkin_rosjava_setup(uploadArchives) +catkin_rosjava_setup(publishMavenJavaPublicationToMavenRepository) catkin_package() diff --git a/build.gradle b/build.gradle index cfc3943..9d5ad1e 100644 --- a/build.gradle +++ b/build.gradle @@ -26,13 +26,14 @@ project.ext { allprojects { group='org.ros.rosjava_bootstrap' - version = '0.1.5' + version = '0.1.6' } subprojects { /* Have to manually do this below since our gradle plugin is our sub project */ apply plugin: 'java' apply plugin: 'maven' + apply plugin: 'maven-publish' sourceCompatibility = 1.6 targetCompatibility = 1.6 @@ -50,9 +51,16 @@ subprojects { } } if ( project.rosMavenDeploymentRepository != 'null' && project.rosMavenDeploymentRepository != '' ) { - uploadArchives { - repositories.mavenDeployer { - repository(url: 'file://' + project.rosMavenDeploymentRepository) + publishing { + publications { + mavenJava(MavenPublication) { + from components.java + } + } + repositories { + maven { + url 'file://' + project.rosMavenDeploymentRepository + } } } } diff --git a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosJavaPlugin.groovy b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosJavaPlugin.groovy index d7a8c99..ead1abb 100644 --- a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosJavaPlugin.groovy +++ b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosJavaPlugin.groovy @@ -2,6 +2,7 @@ package org.ros.gradle_plugins; import org.gradle.api.Project; import org.gradle.api.Plugin; +import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.*; /* @@ -13,17 +14,36 @@ class RosJavaPlugin implements Plugin<Project> { def void apply(Project project) { this.project = project + if (!project.plugins.findPlugin('ros')) { + project.apply(plugin: 'ros') + } if (!project.plugins.findPlugin('java')) { project.apply(plugin: 'java') } - /* Disabling for now - may be source of build farm problems + if (!project.plugins.findPlugin('maven-publish')) { + project.apply(plugin: 'maven-publish') + } if (!project.plugins.findPlugin('osgi')) { project.apply(plugin: 'osgi') } - */ project.sourceCompatibility = 1.6 project.targetCompatibility = 1.6 + + if ( project.ros.mavenDeploymentRepository != 'null' && project.ros.mavenDeploymentRepository != '' ) { + project.publishing { + publications { + mavenJava(MavenPublication) { + from project.components.java + } + } + repositories { + maven { + url 'file://' + project.ros.mavenDeploymentRepository + } + } + } + } } } diff --git a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosPlugin.groovy b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosPlugin.groovy index aa4afbd..b97dccc 100644 --- a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosPlugin.groovy +++ b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/RosPlugin.groovy @@ -22,19 +22,12 @@ class RosPlugin implements Plugin<Project> { def void apply(Project project) { this.project = project if (!project.plugins.findPlugin('maven')) { - project.apply(plugin: org.gradle.api.plugins.MavenPlugin) + project.apply(plugin: 'maven') } /* Create project.ros.* property extensions */ project.extensions.create("ros", RosPluginExtension) project.ros.mavenPath = "$System.env.ROS_MAVEN_PATH".split(':') project.ros.mavenDeploymentRepository = "$System.env.ROS_MAVEN_DEPLOYMENT_REPOSITORY" - if ( project.ros.mavenDeploymentRepository != 'null' && project.ros.mavenDeploymentRepository != '' ) { - project.uploadArchives { - repositories.mavenDeployer { - repository(url: 'file://' + project.ros.mavenDeploymentRepository) - } - } - } /* * Could use some better handling for when this is not defined as it sets * file://null, but it doesn't seem to hurt the process any diff --git a/message_generation/build.gradle b/message_generation/build.gradle index 735ace3..66d4e18 100644 --- a/message_generation/build.gradle +++ b/message_generation/build.gradle @@ -21,13 +21,6 @@ dependencies { compile 'org.apache.commons:com.springsource.org.apache.commons.io:1.4.0' compile 'commons-pool:commons-pool:1.6' compile 'org.apache.commons:com.springsource.org.apache.commons.lang:2.4.0' - compile project(':gradle_plugins') } -jar { - manifest { - symbolicName = 'org.ros.rosjava_messages.message_generation' - } -} - -- GitLab