Skip to content

Instantly share code, notes, and snippets.

@morrelinko
Created May 6, 2014 16:25
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save morrelinko/363a5de6d8307a80c41b 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 = 'C:\\Users\\morrelinko\\.gradle\\caches\\modules-2\\files-2.1'
maven_cache_dir = 'C:\\Users\\morrelinko\\.m2\\repository2'
"""
Build a dictionary of java libraries
"""
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('.', '\\'))
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)
@iamloivx
Copy link

You should parameterize the path parameter ('\' for Windows and '/' for Linux or Mac OS).
Anyway, thank you very much. Your script is very useful.

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