Skip to content

Instantly share code, notes, and snippets.

@kadin2048
Forked from morrelinko/m2cache.py
Last active July 6, 2016 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kadin2048/57bc018c7f074b60f5f11f539faf01eb to your computer and use it in GitHub Desktop.
Save kadin2048/57bc018c7f074b60f5f11f539faf01eb to your computer and use it in GitHub Desktop.
Copy gradle store of libraries into .m2 local cache
import os
import shutil
gradle_cache_dir = '/Users/myusername/.gradle/caches/modules-2/files-2.1/'
maven_cache_dir = '/Users/myusername/.m2/repository/'
"""
Copy dependencies from the Gradle cache to the M2 cache
"""
packages = {}
for package in os.listdir(gradle_cache_dir):
package_dir, packages[package] = os.path.join(gradle_cache_dir, package), {}
for subpackage in os.listdir(package_dir):
subpackage_dir, packages[package][subpackage] = os.path.join(package_dir, subpackage), {}
for version in os.listdir(subpackage_dir):
version_dir = os.path.join(subpackage_dir, version)
packages[package][subpackage][version] = version_dir
for package in packages:
maven_package_dir = os.path.join(maven_cache_dir, package.replace('.', os.path.sep))
if not os.path.exists(maven_package_dir):
os.makedirs(maven_package_dir)
for subpackage in packages[package]:
maven_subpackage_dir = os.path.join(maven_package_dir, subpackage)
if not os.path.exists(maven_subpackage_dir):
os.makedirs(maven_subpackage_dir)
for version in packages[package][subpackage]:
maven_version_dir = os.path.join(maven_subpackage_dir, version)
if not os.path.exists(maven_version_dir):
os.makedirs(maven_version_dir)
for root, dirs, files in os.walk(packages[package][subpackage][version]):
if files:
shutil.copy(os.path.join(root, files[0]), maven_version_dir)
@kadin2048
Copy link
Author

Updated to use os.path.sep so that it works on non-Windows platforms. Tested on Mac OS X.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment