diff options
author | Eric Chang <erichang@google.com> | 2021-05-26 15:41:51 -0700 |
---|---|---|
committer | Dagger Team <dagger-dev+copybara@google.com> | 2021-05-26 15:43:42 -0700 |
commit | cb308856ac76b39d996cc63b236687907f385ea5 (patch) | |
tree | 7ff520cd6522a023956c3c61fc0e7f2efa2529b1 /util | |
parent | 50f54ee0afd524d06312abf6d25d56a83f29bd22 (diff) | |
download | dagger2-cb308856ac76b39d996cc63b236687907f385ea5.tar.gz |
Add an automatic module name entry into the MANIFEST.MF to support JPMS.
Fixes #1079.
RELNOTES=Added an automatic module name to the Dagger artifact
PiperOrigin-RevId: 376045144
Diffstat (limited to 'util')
-rwxr-xr-x | util/deploy-dagger.sh | 43 | ||||
-rwxr-xr-x | util/deploy-hilt.sh | 19 | ||||
-rwxr-xr-x | util/deploy-library.sh | 31 |
3 files changed, 73 insertions, 20 deletions
diff --git a/util/deploy-dagger.sh b/util/deploy-dagger.sh index 071cd9917..164c2c24e 100755 --- a/util/deploy-dagger.sh +++ b/util/deploy-dagger.sh @@ -14,16 +14,20 @@ readonly EXTRA_MAVEN_ARGS=("$@") # parameter, if provided then javadoc must also be provided. # @param {string} javadoc the java doc jar of the library. This is an optional # parameter, if provided then srcjar must also be provided. +# @param {string} module_name the JPMS module name to include in the jar. This +# is an optional parameter and can only be used with jar files. _deploy() { local library=$1 local pomfile=$2 local srcjar=$3 local javadoc=$4 + local module_name=$5 bash $(dirname $0)/deploy-library.sh \ "$library" \ "$pomfile" \ "$srcjar" \ "$javadoc" \ + "$module_name" \ "$MVN_GOAL" \ "$VERSION_NAME" \ "${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}" @@ -33,88 +37,103 @@ _deploy \ java/dagger/libcore.jar \ java/dagger/pom.xml \ java/dagger/libcore-src.jar \ - java/dagger/core-javadoc.jar + java/dagger/core-javadoc.jar \ + "dagger" _deploy \ gwt/libgwt.jar \ gwt/pom.xml \ gwt/libgwt.jar \ - gwt/libgwt.jar + gwt/libgwt.jar \ + "" _deploy \ java/dagger/internal/codegen/artifact.jar \ java/dagger/internal/codegen/pom.xml \ java/dagger/internal/codegen/artifact-src.jar \ - java/dagger/internal/codegen/artifact-javadoc.jar + java/dagger/internal/codegen/artifact-javadoc.jar \ + "" _deploy \ java/dagger/producers/artifact.jar \ java/dagger/producers/pom.xml \ java/dagger/producers/artifact-src.jar \ - java/dagger/producers/artifact-javadoc.jar + java/dagger/producers/artifact-javadoc.jar \ + "" _deploy \ java/dagger/spi/artifact.jar \ java/dagger/spi/pom.xml \ java/dagger/spi/artifact-src.jar \ - java/dagger/spi/artifact-javadoc.jar + java/dagger/spi/artifact-javadoc.jar \ + "" _deploy \ java/dagger/android/android.aar \ java/dagger/android/pom.xml \ java/dagger/android/libandroid-src.jar \ - java/dagger/android/android-javadoc.jar + java/dagger/android/android-javadoc.jar \ + "" _deploy \ java/dagger/android/android-legacy.aar \ java/dagger/android/legacy-pom.xml \ "" \ + "" \ "" _deploy \ java/dagger/android/support/support.aar \ java/dagger/android/support/pom.xml \ java/dagger/android/support/libsupport-src.jar \ - java/dagger/android/support/support-javadoc.jar + java/dagger/android/support/support-javadoc.jar \ + "" _deploy \ java/dagger/android/support/support-legacy.aar \ java/dagger/android/support/legacy-pom.xml \ "" \ + "" \ "" _deploy \ shaded_android_processor.jar \ java/dagger/android/processor/pom.xml \ java/dagger/android/processor/libprocessor-src.jar \ - java/dagger/android/processor/processor-javadoc.jar + java/dagger/android/processor/processor-javadoc.jar \ + "" _deploy \ java/dagger/grpc/server/libserver.jar \ java/dagger/grpc/server/server-pom.xml \ java/dagger/grpc/server/libserver-src.jar \ - java/dagger/grpc/server/javadoc.jar + java/dagger/grpc/server/javadoc.jar \ + "" _deploy \ java/dagger/grpc/server/libannotations.jar \ java/dagger/grpc/server/annotations-pom.xml \ java/dagger/grpc/server/libannotations-src.jar \ - java/dagger/grpc/server/javadoc.jar + java/dagger/grpc/server/javadoc.jar \ + "" _deploy \ shaded_grpc_server_processor.jar \ java/dagger/grpc/server/processor/pom.xml \ java/dagger/grpc/server/processor/libprocessor-src.jar \ - java/dagger/grpc/server/processor/javadoc.jar + java/dagger/grpc/server/processor/javadoc.jar \ + "" _deploy \ java/dagger/lint/lint-artifact.jar \ java/dagger/lint/lint-pom.xml \ java/dagger/lint/lint-artifact-src.jar \ - java/dagger/lint/lint-artifact-javadoc.jar + java/dagger/lint/lint-artifact-javadoc.jar \ + "" _deploy \ java/dagger/lint/lint-android-artifact.aar \ java/dagger/lint/lint-android-pom.xml \ "" \ + "" \ "" diff --git a/util/deploy-hilt.sh b/util/deploy-hilt.sh index d5e40a2a6..b295a7a92 100755 --- a/util/deploy-hilt.sh +++ b/util/deploy-hilt.sh @@ -14,16 +14,20 @@ readonly EXTRA_MAVEN_ARGS=("$@") # parameter, if provided then javadoc must also be provided. # @param {string} javadoc the java doc jar of the library. This is an optional # parameter, if provided then srcjar must also be provided. +# @param {string} module_name the JPMS module name to include in the jar. This +# is an optional parameter and can only be used with jar files. _deploy() { local library=$1 local pomfile=$2 local srcjar=$3 local javadoc=$4 + local module_name=$5 bash $(dirname $0)/deploy-library.sh \ "$library" \ "$pomfile" \ "$srcjar" \ "$javadoc" \ + "$module_name" \ "$MVN_GOAL" \ "$VERSION_NAME" \ "${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}" @@ -33,28 +37,33 @@ _deploy \ java/dagger/hilt/android/artifact.aar \ java/dagger/hilt/android/pom.xml \ java/dagger/hilt/android/artifact-src.jar \ - java/dagger/hilt/android/artifact-javadoc.jar + java/dagger/hilt/android/artifact-javadoc.jar \ + "" _deploy \ java/dagger/hilt/android/testing/artifact.aar \ java/dagger/hilt/android/testing/pom.xml \ java/dagger/hilt/android/testing/artifact-src.jar \ - java/dagger/hilt/android/testing/artifact-javadoc.jar + java/dagger/hilt/android/testing/artifact-javadoc.jar \ + "" _deploy \ java/dagger/hilt/processor/artifact.jar \ java/dagger/hilt/processor/pom.xml \ java/dagger/hilt/processor/artifact-src.jar \ - java/dagger/hilt/processor/artifact-javadoc.jar + java/dagger/hilt/processor/artifact-javadoc.jar \ + "" _deploy \ java/dagger/hilt/android/processor/artifact.jar \ java/dagger/hilt/android/processor/pom.xml \ java/dagger/hilt/android/processor/artifact-src.jar \ - java/dagger/hilt/android/processor/artifact-javadoc.jar + java/dagger/hilt/android/processor/artifact-javadoc.jar \ + "" _deploy \ java/dagger/hilt/artifact-core.jar \ java/dagger/hilt/pom.xml \ java/dagger/hilt/artifact-core-src.jar \ - java/dagger/hilt/artifact-core-javadoc.jar + java/dagger/hilt/artifact-core-javadoc.jar \ + "" diff --git a/util/deploy-library.sh b/util/deploy-library.sh index a744402ba..719a47f75 100755 --- a/util/deploy-library.sh +++ b/util/deploy-library.sh @@ -9,14 +9,17 @@ set -eu # parameter, if provided then javadoc must also be provided. # @param {string} javadoc the java doc jar of the library. This is an optional # parameter, if provided then srcjar must also be provided. +# @param {string} module_name the JPMS module name to include in the jar. This +# is an optional parameter and can only be used with jar files. deploy_library() { local library=$1 local pomfile=$2 local srcjar=$3 local javadoc=$4 - local mvn_goal=$5 - local version_name=$6 - shift 6 + local module_name=$5 + local mvn_goal=$6 + local version_name=$7 + shift 7 local extra_maven_args=("$@") bazel build --define=pom_version="$version_name" \ @@ -29,6 +32,12 @@ deploy_library() { $(bazel_output_file $pomfile) \ $version_name + # TODO(bcorso): Consider moving this into the "gen_maven_artifact" macro once + # all our targets are using gen_maven_artifact + add_automatic_module_name_manifest_entry \ + $(bazel_output_file $library) \ + "${module_name}" + if [ -n "$srcjar" ] && [ -n "$javadoc" ] ; then bazel build --define=pom_version="$version_name" \ $srcjar $javadoc @@ -81,6 +90,22 @@ add_tracking_version() { fi } +add_automatic_module_name_manifest_entry() { + local library=$1 + local module_name=$2 + if [ -n "$module_name" ] ; then + if [[ $library =~ \.jar$ ]]; then + local temp_dir=$(mktemp -d) + echo "Automatic-Module-Name: ${module_name}" > $temp_dir/module_name_file + # The "m" flag is specifically for adding manifest entries. + jar ufm $library $temp_dir/module_name_file + else + echo "Could not add module name to $library" + exit 1 + fi + fi +} + find_pom_value() { local pomfile=$1 local attribute=$2 |