diff --git a/CMakeLists.txt b/CMakeLists.txt index 237f71a5d8f1090db665db980a77e73a73f287ec..0538e08e2bb274c33f1bfb7b607e50f2958293cd 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 cfc394348c2a87ed87af502feb2f9843f64801c3..9d5ad1e7c149f5e456693bbfd755d476ac552da9 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 d7a8c99c61ad2dbe3d574a31bd4a1fa1ea2d81f6..ead1abbb8c334d57764f0edb5fba16d342956eba 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 aa4afbd6b7921b6037fedba34319003dfb0cfc3a..b97dccc8d16b13d53aef59c7523f123aa201eb38 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 735ace3fb69bf2350951219f4c431d0cd41cb130..66d4e1870cc65ed39c3d5cc1de633001bfab8d41 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' - } -} -