From bf0f02c096345ca992208b8a82ad4a9eda5508c6 Mon Sep 17 00:00:00 2001 From: Daniel Stonier <d.stonier@gmail.com> Date: Mon, 10 Jun 2013 14:24:23 +0900 Subject: [PATCH] use the maven publish plugin - less hackish maven local publishing --- cmake/rosjava.cmake.em | 43 +++++++------------ src/rosjava_tools/create_package.py | 18 +++++++- .../templates/android_package/build.gradle.in | 5 ++- .../templates/init_repo/build.gradle.in | 22 ++-------- 4 files changed, 38 insertions(+), 50 deletions(-) diff --git a/cmake/rosjava.cmake.em b/cmake/rosjava.cmake.em index d52b600..637734f 100644 --- a/cmake/rosjava.cmake.em +++ b/cmake/rosjava.cmake.em @@ -42,9 +42,14 @@ endmacro() # that it is called in with install and installApp targets. macro(catkin_rosjava_setup) find_gradle() + if( ${ARGC} EQUAL 0 ) + set(gradle_tasks "install installApp") + else() + string(REPLACE ";" " " gradle_tasks "${ARGV}") + endif() add_custom_target(gradle-${PROJECT_NAME} ALL - COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} install installApp + COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) catkin_package_xml() @@ -64,29 +69,6 @@ macro(catkin_rosjava_setup) add_dependencies(gradle-clean gradle-clean-${PROJECT_NAME}) endmacro() -############################################################################## -# RosJava Repo -############################################################################## - -# Calls the root level gradle wrapper to run the multi-project -# configuration and compile the entire suite. -macro(catkin_rosjava_repo_setup) - find_gradle() - find_gradle_repo_root() - add_custom_target(gradle-${PROJECT_NAME} - ALL - COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} install installApp - WORKING_DIRECTORY ${${PROJECT_NAME}_gradle_ROOT} - ) - catkin_package_xml() - foreach(depends in ${${PROJECT_NAME}_BUILD_DEPENDS}) - if(TARGET gradle-${depends}) - #message(STATUS "Adding dependency gradle-${depends}") - add_dependencies(gradle-${PROJECT_NAME} gradle-${depends}) - endif() - endforeach() -endmacro() - ############################################################################## # Android Package ############################################################################## @@ -95,14 +77,19 @@ endmacro() # assembleDebug or assembleRelease macro(catkin_android_setup) find_gradle() - if(CMAKE_BUILD_TYPE STREQUAL "Release") - set(gradle_task "assembleRelase") + if( ${ARGC} EQUAL 0 ) + if(CMAKE_BUILD_TYPE STREQUAL "Release") + set(gradle_tasks "assembleRelase") + else() + set(gradle_tasks "assembleDebug") + endif() else() - set(gradle_task "assembleDebug") + set(gradle_tasks ${ARGV}) endif() + message(STATUS "Gradle Tasks................${gradle_tasks}") add_custom_target(gradle-${PROJECT_NAME} ALL - COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_task} install + COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) catkin_package_xml() diff --git a/src/rosjava_tools/create_package.py b/src/rosjava_tools/create_package.py index adcc5ba..54ae5d0 100644 --- a/src/rosjava_tools/create_package.py +++ b/src/rosjava_tools/create_package.py @@ -110,7 +110,8 @@ def create_gradle_package_files(args, author, is_library, sdk_version): filename = os.path.join(package_path, template_name) template = read_template_file(template_name) contents = instantiate_template(template, package_name, author, plugin_name, sdk_version) - print("Template") + if is_library: + contents += extra_gradle_library_text() try: f = open(filename, 'w') f.write(contents) @@ -140,6 +141,21 @@ def add_to_root_gradle_settings(name): settings_gradle.write("include '%s'\n" % name) +def extra_gradle_library_text(): + text = "\n" + text += "/* http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds */\n" + text += "android.libraryVariants\n" + text += "publishing {\n" + text += " publications {\n" + text += " maven(MavenPublication) {\n" + text += " /* artifact bundleDebug */\n" + text += " artifact bundleRelease\n" + text += " }\n" + text += " }\n" + text += "}\n" + return text + + def create_android_package(is_library=False): args = parse_arguments() create_android_project(args.name[0], args.sdk_version, args.android_package_name, is_library) diff --git a/src/rosjava_tools/templates/android_package/build.gradle.in b/src/rosjava_tools/templates/android_package/build.gradle.in index 596f756..0faf4ef 100644 --- a/src/rosjava_tools/templates/android_package/build.gradle.in +++ b/src/rosjava_tools/templates/android_package/build.gradle.in @@ -17,12 +17,13 @@ /* Examples of 1) dependencies from another project in this gradle stack. - 2) dependency from a maven repository. + 2,3) dependency from a maven repository. */ /* dependencies { - compile project(':android_apps_core_components') + compile project(':local_android_library_dependency') compile 'ros.android_core:android_gingerbread_mr1:0.0.0-SNAPSHOT' + compile 'com.github.ros_java.android_extras:android_extras_gingerbread:0.1.0' } */ diff --git a/src/rosjava_tools/templates/init_repo/build.gradle.in b/src/rosjava_tools/templates/init_repo/build.gradle.in index 879f871..27963df 100644 --- a/src/rosjava_tools/templates/init_repo/build.gradle.in +++ b/src/rosjava_tools/templates/init_repo/build.gradle.in @@ -34,7 +34,10 @@ subprojects { classpath 'com.android.tools.build:gradle:0.4.1' } } + apply plugin: 'maven' + apply plugin: "maven-publish" + repositories { mavenLocal() maven { @@ -46,10 +49,6 @@ subprojects { exclude group: 'xml-apis' } - /* - EXPERIMENTAL: Trick to get local maven installs until the plugin supports an - install step for aar's (coming soon). - */ uploadArchives { repositories { mavenDeployer { @@ -57,19 +56,4 @@ subprojects { } } } - task install() << { - description = 'installs .aar files to the local maven repository.' - } - - /* Get the debug versions of the aar's as well. */ - afterEvaluate { Project project -> - if (plugins.findPlugin('android-library')) { - task doDebugArchives() << { - project.artifacts.add("default", bundleDebug) - } - doDebugArchives.dependsOn('bundleDebug') - uploadArchives.dependsOn('doDebugArchives') - install.dependsOn('uploadArchives') - } - } } -- GitLab