Python脚本输出build.Gradle文件的依赖项

时间:2019-01-31 17:18:48

标签: python json gradle dependencies

My Python Script
import re
filename = "build.gradle"
pattern = re.compile(r"dependencies", re.IGNORECASE)
with open(filename, "rt") as in_file:
 for line in in_file:
  if pattern.search(line) != None:
      #for line in in_file:
          #print(line)




   print(line, end='')

My Build.Gradle File
buildscript {
    ext {
        springBootVersion = '2.1.0.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

我正在尝试读取build.gradle文件,并且仅输出.gradle文件的依赖项。我需要输出为json格式,以便我可以填充数据库。理想情况下

org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}
org.springframework.boot:spring-boot-starter-web
org.springframework.boot:spring-boot-starter-test

我尝试了许多方法,但似乎无法获得我需要的输出。提前致谢。

1 个答案:

答案 0 :(得分:0)

build.gradle文件是一个脚本,我建议您不要解析脚本文件,因为它的数据结构不稳定。

例如:您必须使用正则表达式来替换字符串中的数据,有时用户定义一个与regex模式匹配的同名变量?

我认为通过执行gradle命令添加依赖项的最佳方法是:

import os
os.system('./gradlew app:dependencies --configuration implementation')

您可以找到gradle插件来帮助我们将依赖项检索到项目中。然后通过python脚本执行gradle命令。