代码之家  ›  专栏  ›  技术社区  ›  jakub.g

如何使Gradle项目VersionYe友好?

  •  0
  • jakub.g  · 技术社区  · 7 年前

    我有一个Gradle项目要导入 Versioneye 检查我的依赖项是否是最新的,但它是一个复杂的配置文件(带有外部变量等),VersionYe无法正确处理依赖项。

    我不想安装Versioneye gradle插件。

    如何将依赖项从repo导出到Versioneye?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jakub.g    7 年前

    您可以列出所有依赖项 gradle app:dependencies .

    通过一些字符串操作,您可以导出一个“干净的”依赖项文件并手动将其上载到VersionYe。

    #!/bin/bash
    
    OUT_DIR='versioneye'
    OUT_FILE="${OUT_DIR}/build.gradle"
    
    mkdir -p "${OUT_DIR}"
    touch "${OUT_FILE}"
    
    # copy your maven repositories closure below from build.gradle
    tee "${OUT_FILE}" <<EOF >/dev/null
    allprojects {
        repositories {
            maven {
                url 'https://maven.google.com/maven-google-remote'
            }
            maven {
                url "https://jitpack.io"
            }
        }
    }
    EOF
    
    echo 'dependencies {' >> "${OUT_FILE}"
    ./gradlew app:dependencies | grep '^+---' | sed 's|+--- |compile "|' | sed 's| (\*)||g' | sed 's|$|"|' | sort -u >> "${OUT_FILE}"
    echo '}' >> "${OUT_FILE}"
    
    cat "${OUT_FILE}"
    cd "${OUT_DIR}"
    start .
    cd -
    
    echo 'Now, open versioneye.com and manually upload the genreated build.gradle file.'
    

    这将生成一个如下所示的文件:

    allprojects {
        repositories {
            maven {
                url 'https://maven.google.com/maven-google-remote'
            }
            maven {
                url "https://jitpack.io"
            }
            ...
        }
    }
    dependencies {
    compile "com.android.support.test.espresso:espresso-contrib:2.2.2"
    compile "com.android.support.test.espresso:espresso-core:2.2.2"
    compile "com.android.support.test.espresso:espresso-intents:2.2.2"
    compile "com.facebook.android:facebook-android-sdk:4.17.0"
    compile "com.facebook.fresco:fresco:1.5.0"
    compile "com.facebook.fresco:imagepipeline-okhttp3:1.5.0"
    ...
    }
    

    此文件可以通过文件上载导入到VersionYe,并将得到正确处理。