Skip to content

Commit

Permalink
Merge pull request #39 from menny/maven-coords-tag
Browse files Browse the repository at this point in the history
Maven coords tag
menny authored Mar 14, 2019

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 4c5e0b5 + bd6523e commit 00ce5bb
Showing 9 changed files with 77 additions and 2 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@ This WORKSPACE will provide `deps_workspace_generator_rule` rule and `artifact`
* Profiles and placeholders.
* Version-specification.
* Dependencies that do not have POM.
* Exports the Maven coordinate as a tag in the `java_import` rule.
* Calculates `sha256` for each remote artifact.
* Produces a _lock_ file that describes the dependency graph. This file should be checked into your repo.

@@ -37,7 +38,7 @@ There are several attempts to solve this problem (such as [sync-deps](https://gi
### WORKSPACE file
Add this repository to your WORKSPACE (set `bazel_mvn_deps_version` to the latest [release](https://github.com/menny/mabel/releases) or, if you are adventurous, [commit](https://github.com/menny/mabel/commits/master)):
```python
mabel_version = "0.5.3"
mabel_version = "0.5.4"
http_archive(
name = "mabel",
urls = ["https://github.com/menny/mabel/archive/%s.zip" % mabel_version],
4 changes: 4 additions & 0 deletions examples/android/program/main_deps/dependencies.bzl
Original file line number Diff line number Diff line change
@@ -262,6 +262,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from androidx.annotation:annotation:1.0.0
native.java_import(name = 'androidx_annotation__annotation__1_0_0',
jars = ['@androidx_annotation__annotation__1_0_0//file'],
tags = ['maven_coordinates=androidx.annotation:annotation:1.0.0'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -308,6 +309,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from androidx.arch.core:core-common:2.0.0
native.java_import(name = 'androidx_arch_core__core_common__2_0_0',
jars = ['@androidx_arch_core__core_common__2_0_0//file'],
tags = ['maven_coordinates=androidx.arch.core:core-common:2.0.0'],
licenses = ['notice'],
deps = [':androidx_annotation__annotation'],
exports = [':androidx_annotation__annotation'],
@@ -361,6 +363,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from androidx.collection:collection:1.0.0
native.java_import(name = 'androidx_collection__collection__1_0_0',
jars = ['@androidx_collection__collection__1_0_0//file'],
tags = ['maven_coordinates=androidx.collection:collection:1.0.0'],
licenses = ['notice'],
deps = [':androidx_annotation__annotation'],
exports = [':androidx_annotation__annotation'],
@@ -592,6 +595,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from androidx.lifecycle:lifecycle-common:2.0.0
native.java_import(name = 'androidx_lifecycle__lifecycle_common__2_0_0',
jars = ['@androidx_lifecycle__lifecycle_common__2_0_0//file'],
tags = ['maven_coordinates=androidx.lifecycle:lifecycle-common:2.0.0'],
licenses = ['notice'],
deps = [':androidx_annotation__annotation'],
exports = [':androidx_annotation__annotation'],
17 changes: 17 additions & 0 deletions examples/java_plugin/program/main_deps/dependencies.bzl
Original file line number Diff line number Diff line change
@@ -160,6 +160,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.auto.value:auto-value-annotations:1.6.3
native.java_import(name = 'apt___com_google_auto_value__auto_value_annotations__1_6_3',
jars = ['@apt___com_google_auto_value__auto_value_annotations__1_6_3//file'],
tags = ['maven_coordinates=com.google.auto.value:auto-value-annotations:1.6.3'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -175,6 +176,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.auto.value:auto-value:1.6.3
native.java_import(name = 'apt___com_google_auto_value__auto_value__1_6_3',
jars = ['@apt___com_google_auto_value__auto_value__1_6_3//file'],
tags = ['maven_coordinates=com.google.auto.value:auto-value:1.6.3'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -354,6 +356,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.code.findbugs:jsr305:1.3.9
native.java_import(name = 'apt___com_google_code_findbugs__jsr305__1_3_9',
jars = ['@apt___com_google_code_findbugs__jsr305__1_3_9//file'],
tags = ['maven_coordinates=com.google.code.findbugs:jsr305:1.3.9'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -369,6 +372,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.dagger:dagger-compiler:2.19
native.java_import(name = 'apt___com_google_dagger__dagger_compiler__2_19',
jars = ['@apt___com_google_dagger__dagger_compiler__2_19//file'],
tags = ['maven_coordinates=com.google.dagger:dagger-compiler:2.19'],
licenses = ['notice'],
deps = [
':apt___com_google_dagger__dagger',
@@ -470,6 +474,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.dagger:dagger-producers:2.19
native.java_import(name = 'apt___com_google_dagger__dagger_producers__2_19',
jars = ['@apt___com_google_dagger__dagger_producers__2_19//file'],
tags = ['maven_coordinates=com.google.dagger:dagger-producers:2.19'],
licenses = ['notice'],
deps = [
':apt___com_google_dagger__dagger',
@@ -495,6 +500,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.dagger:dagger-spi:2.19
native.java_import(name = 'apt___com_google_dagger__dagger_spi__2_19',
jars = ['@apt___com_google_dagger__dagger_spi__2_19//file'],
tags = ['maven_coordinates=com.google.dagger:dagger-spi:2.19'],
licenses = ['notice'],
deps = [
':apt___com_google_dagger__dagger',
@@ -520,6 +526,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.dagger:dagger:2.19
native.java_import(name = 'apt___com_google_dagger__dagger__2_19',
jars = ['@apt___com_google_dagger__dagger__2_19//file'],
tags = ['maven_coordinates=com.google.dagger:dagger:2.19'],
licenses = ['notice'],
deps = [':apt___javax_inject__javax_inject'],
exports = [':apt___javax_inject__javax_inject'],
@@ -535,6 +542,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.errorprone:error_prone_annotations:2.1.3
native.java_import(name = 'apt___com_google_errorprone__error_prone_annotations__2_1_3',
jars = ['@apt___com_google_errorprone__error_prone_annotations__2_1_3//file'],
tags = ['maven_coordinates=com.google.errorprone:error_prone_annotations:2.1.3'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -550,6 +558,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.errorprone:javac-shaded:9-dev-r4023-3
native.java_import(name = 'apt___com_google_errorprone__javac_shaded__9_dev_r4023_3',
jars = ['@apt___com_google_errorprone__javac_shaded__9_dev_r4023_3//file'],
tags = ['maven_coordinates=com.google.errorprone:javac-shaded:9-dev-r4023-3'],
licenses = ['restricted'],
deps = [],
exports = [],
@@ -565,6 +574,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.googlejavaformat:google-java-format:1.5
native.java_import(name = 'apt___com_google_googlejavaformat__google_java_format__1_5',
jars = ['@apt___com_google_googlejavaformat__google_java_format__1_5//file'],
tags = ['maven_coordinates=com.google.googlejavaformat:google-java-format:1.5'],
licenses = ['notice'],
deps = [
':apt___com_google_errorprone__javac_shaded',
@@ -586,6 +596,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.guava:guava:25.0-jre
native.java_import(name = 'apt___com_google_guava__guava__25_0_jre',
jars = ['@apt___com_google_guava__guava__25_0_jre//file'],
tags = ['maven_coordinates=com.google.guava:guava:25.0-jre'],
licenses = ['notice'],
deps = [
':apt___com_google_code_findbugs__jsr305',
@@ -613,6 +624,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.j2objc:j2objc-annotations:1.1
native.java_import(name = 'apt___com_google_j2objc__j2objc_annotations__1_1',
jars = ['@apt___com_google_j2objc__j2objc_annotations__1_1//file'],
tags = ['maven_coordinates=com.google.j2objc:j2objc-annotations:1.1'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -628,6 +640,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.squareup:javapoet:1.11.1
native.java_import(name = 'apt___com_squareup__javapoet__1_11_1',
jars = ['@apt___com_squareup__javapoet__1_11_1//file'],
tags = ['maven_coordinates=com.squareup:javapoet:1.11.1'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -643,6 +656,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from javax.annotation:jsr250-api:1.0
native.java_import(name = 'apt___javax_annotation__jsr250_api__1_0',
jars = ['@apt___javax_annotation__jsr250_api__1_0//file'],
tags = ['maven_coordinates=javax.annotation:jsr250-api:1.0'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -658,6 +672,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from javax.inject:javax.inject:1
native.java_import(name = 'apt___javax_inject__javax_inject__1',
jars = ['@apt___javax_inject__javax_inject__1//file'],
tags = ['maven_coordinates=javax.inject:javax.inject:1'],
licenses = ['notice'],
deps = [],
exports = [],
@@ -673,6 +688,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from org.checkerframework:checker-compat-qual:2.5.3
native.java_import(name = 'apt___org_checkerframework__checker_compat_qual__2_5_3',
jars = ['@apt___org_checkerframework__checker_compat_qual__2_5_3//file'],
tags = ['maven_coordinates=org.checkerframework:checker-compat-qual:2.5.3'],
licenses = [
'notice',
'restricted',
@@ -691,6 +707,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from org.codehaus.mojo:animal-sniffer-annotations:1.14
native.java_import(name = 'apt___org_codehaus_mojo__animal_sniffer_annotations__1_14',
jars = ['@apt___org_codehaus_mojo__animal_sniffer_annotations__1_14//file'],
tags = ['maven_coordinates=org.codehaus.mojo:animal-sniffer-annotations:1.14'],
licenses = ['notice'],
deps = [],
exports = [],
1 change: 1 addition & 0 deletions examples/kotlin/program/main_deps/dependencies.bzl
Original file line number Diff line number Diff line change
@@ -91,6 +91,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.code.gson:gson:2.8.0
native.java_import(name = 'com_google_code_gson__gson__2_8_0',
jars = ['@com_google_code_gson__gson__2_8_0//file'],
tags = ['maven_coordinates=com.google.code.gson:gson:2.8.0'],
licenses = ['notice'],
deps = [],
exports = [],
Original file line number Diff line number Diff line change
@@ -91,6 +91,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.code.gson:gson:2.8.0
native.java_import(name = 'com_google_code_gson__gson__2_8_0',
jars = ['@com_google_code_gson__gson__2_8_0//file'],
tags = ['maven_coordinates=com.google.code.gson:gson:2.8.0'],
licenses = ['notice'],
deps = [],
exports = [],
1 change: 1 addition & 0 deletions examples/plain_java/program/main_deps/dependencies.bzl
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ def generate_transitive_dependency_targets(kt_jvm_import=None, kt_jvm_library=No
# from com.google.guava:guava:20.0
native.java_import(name = 'com_google_guava__guava__20_0',
jars = ['@com_google_guava__guava__20_0//file'],
tags = ['maven_coordinates=com.google.guava:guava:20.0'],
licenses = ['notice'],
deps = [],
exports = [],
42 changes: 42 additions & 0 deletions resolver/main_deps/dependencies.bzl

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -48,7 +48,8 @@ private static Target addJavaImportRule(boolean asNative, Dependency dependency,
final Target target = new Target(dependency.mavenCoordinates(), asNative ? "native.java_import":"java_import", dependency.repositoryRuleName() + postFix)
.addList("jars", "pom".equalsIgnoreCase(dependency.packaging()) ?
Collections.emptyList()
:Collections.singletonList(String.format(Locale.US, "@%s//file", dependency.repositoryRuleName())))
:Collections.singletonList(String.format(Locale.ROOT, "@%s//file", dependency.repositoryRuleName())))
.addList("tags", Collections.singletonList(String.format(Locale.ROOT, "maven_coordinates=%s", dependency.mavenCoordinates())))
.addList("licenses", dependency.licenses().stream().map(License::toString).collect(Collectors.toList()))
.addList("deps", convertRulesToStrings(dependency.dependencies()))
.addList("exports", convertRulesToStrings(dependency.exports()))
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@ public class FormattersTests {
"\n";
private static final String JAVA_IMPORT_TEXT = " java_import(name = 'java__lib__',\n" +
" jars = ['@java__lib__//file'],\n" +
" tags = ['maven_coordinates=java:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -42,6 +43,7 @@ public class FormattersTests {
"\n";
private static final String JAVA_IMPORT_TEXT_WITH_SOURCES = " java_import(name = 'java__lib__',\n" +
" jars = ['@java__lib__//file'],\n" +
" tags = ['maven_coordinates=java:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -65,6 +67,7 @@ public class FormattersTests {
"\n";
private static final String POM_ONLY_NATIVE_IMPORT_TEXT = " native.java_import(name = 'parent__lib__',\n" +
" jars = [],\n" +
" tags = ['maven_coordinates=parent:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -87,6 +90,7 @@ public class FormattersTests {
"\n";
private static final String NATIVE_JAVA_IMPORT_TEXT = " native.java_import(name = 'java__lib__',\n" +
" jars = ['@java__lib__//file'],\n" +
" tags = ['maven_coordinates=java:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -109,6 +113,7 @@ public class FormattersTests {
"\n";
private static final String NATIVE_JAVA_IMPORT_WITH_LICENSE_TEXT = " native.java_import(name = 'java__lib__',\n" +
" jars = ['@java__lib__//file'],\n" +
" tags = ['maven_coordinates=java:lib:'],\n" +
" licenses = ['notice'],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -169,6 +174,7 @@ public class FormattersTests {
"\n";
private static final String JAVA_PLUGIN_TEXT = " java_import(name = 'aar__lib__',\n" +
" jars = ['@aar__lib__//file'],\n" +
" tags = ['maven_coordinates=aar:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +
@@ -275,6 +281,7 @@ public class FormattersTests {
"\n";
private static final String NATIVE_JAVA_PLUGIN_TEXT = " native.java_import(name = 'aar__lib__',\n" +
" jars = ['@aar__lib__//file'],\n" +
" tags = ['maven_coordinates=aar:lib:'],\n" +
" licenses = [],\n" +
" deps = [\n" +
" ':safe_mvn__dep1',\n" +

0 comments on commit 00ce5bb

Please sign in to comment.