Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include Maven dependency in files.json #10719

Merged
merged 11 commits into from
Aug 9, 2019
4 changes: 2 additions & 2 deletions tools/android_support/download_android_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ def main():
with open (os.path.join(THIS_DIR, 'files.json')) as f:
files = json.load(f)

for file, url in files.items():
getFile(url, file)
for entry in files:
getFile(entry['url'], entry['out_file_name'])

if __name__ == '__main__':
sys.exit(main())
52 changes: 42 additions & 10 deletions tools/android_support/files.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,42 @@
{
"android_arch_lifecycle_common.jar": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/common/1.1.1/common-1.1.1.jar",
"android_arch_lifecycle_common_java8.jar": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/common-java8/1.1.1/common-java8-1.1.1.jar",
"android_arch_lifecycle_runtime.jar": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/runtime/1.1.1/runtime-1.1.1.aar",
"android_arch_lifecycle_viewmodel.jar": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/viewmodel/1.1.1/viewmodel-1.1.1.aar",
"android_support_fragment.jar": "https://dl.google.com/dl/android/maven2/com/android/support/support-fragment/28.0.0/support-fragment-28.0.0.aar",
"android_support_v13.jar": "https://dl.google.com/dl/android/maven2/com/android/support/support-v13/28.0.0/support-v13-28.0.0.aar",
"android_support_annotations.jar": "https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/28.0.0/support-annotations-28.0.0.jar",
"android_support_compat.jar": "https://dl.google.com/dl/android/maven2/com/android/support/support-compat/28.0.0/support-compat-28.0.0.aar"
}
[
{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI I think long term we wanted these moved to CIPD instead of here. I may be remembering wrong, I thought I saw an issue from @dnfield about this but couldn't find it now. Either way this is fine for this patch though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be preferable to create CIPD packages for these and avoid using this script any further.

"url": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/common/1.1.1/common-1.1.1.jar",
"out_file_name": "android_arch_lifecycle_common.jar",
"maven_dependency": "android.arch.lifecycle:common:1.1.1"
},
{
"url": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/common-java8/1.1.1/common-java8-1.1.1.jar",
"out_file_name": "android_arch_lifecycle_common_java8.jar",
"maven_dependency": "android.arch.lifecycle:common-java8:1.1.1"
},
{
"url": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/runtime/1.1.1/runtime-1.1.1.aar",
"out_file_name": "android_arch_lifecycle_runtime.jar",
"maven_dependency": "android.arch.lifecycle:runtime:1.1.1"
},
{
"url": "https://dl.google.com/dl/android/maven2/android/arch/lifecycle/viewmodel/1.1.1/viewmodel-1.1.1.aar",
"out_file_name": "android_arch_lifecycle_viewmodel.jar",
"maven_dependency": "android.arch.lifecycle:viewmodel:1.1.1"
},
{
"url": "https://dl.google.com/dl/android/maven2/com/android/support/support-fragment/28.0.0/support-fragment-28.0.0.aar",
"out_file_name": "android_support_fragment.jar",
"maven_dependency": "com.android.support:support-fragment:28.0.0"
},
{
"url": "https://dl.google.com/dl/android/maven2/com/android/support/support-v13/28.0.0/support-v13-28.0.0.aar",
"out_file_name": "android_support_v13.jar",
"maven_dependency": "com.android.support:support-v13:28.0.0"
},
{
"url": "https://dl.google.com/dl/android/maven2/com/android/support/support-annotations/28.0.0/support-annotations-28.0.0.jar",
"out_file_name": "android_support_annotations.jar",
"maven_dependency": "com.android.support:support-annotations:28.0.0"
},
{
"url": "https://dl.google.com/dl/android/maven2/com/android/support/support-compat/28.0.0/support-compat-28.0.0.aar",
"out_file_name": "android_support_compat.jar",
"maven_dependency": "com.android.support:support-compat:28.0.0"
}
]
66 changes: 66 additions & 0 deletions tools/android_support/generate_pom_file.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env python
blasten marked this conversation as resolved.
Show resolved Hide resolved
# Copyright 2019 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import argparse
import os
import sys
import json

THIS_DIR = os.path.abspath(os.path.dirname(__file__))

# The template for the POM file.
POM_FILE_CONTENT = '''
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>io.flutter</groupId>
<artifactId>{0}</artifactId>
<version>{1}</version>
<packaging>jar</packaging>
<dependencies>
{2}
</dependencies>
</project>
'''

POM_DEPENDENCY = '''
<dependency>
<groupId>{0}</groupId>
<artifactId>{1}</artifactId>
<version>{2}</version>
<scope>compile</scope>
</dependency>
'''

def main():
with open (os.path.join(THIS_DIR, 'files.json')) as f:
dependencies = json.load(f)

parser = argparse.ArgumentParser(description='Generate the POM file for the engine artifacts')
parser.add_argument('--engine-artifact-id', type=str, required=True,
help='The artifact id. e.g. android_arm_release')
parser.add_argument('--engine-version', type=str, required=True,
help='The engine commit hash')
parser.add_argument('--destination', type=str, required=True,
help='The destination directory absolute path')

args = parser.parse_args()
engine_artifact_id = args.engine_artifact_id
engine_version = args.engine_version
artifact_version = '1.0.0-' + engine_version
out_file_name = '%s-%s.pom' % (engine_artifact_id, engine_version)

pom_dependencies = ''
for dependency in dependencies:
group_id, artifact_id, version = dependency['maven_dependency'].split(':')
pom_dependencies += POM_DEPENDENCY.format(group_id, artifact_id, version)

# Write the POM file.
with open(os.path.join(args.destination, out_file_name), 'w') as f:
f.write(POM_FILE_CONTENT.format(engine_artifact_id, engine_version, pom_dependencies))

if __name__ == '__main__':
sys.exit(main())