Created
May 6, 2014 16:25
-
-
Save morrelinko/363a5de6d8307a80c41b to your computer and use it in GitHub Desktop.
Copy gradle store of libraries into .m2 local cache
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You should parameterize the path parameter ('\' for Windows and '/' for Linux or Mac OS).
Anyway, thank you very much. Your script is very useful.