Python Script для вывода зависимостей из build.Gradle File - PullRequest
0 голосов
/ 31 января 2019
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 голосов
/ 18 июня 2019

build.gradle файл - это сценарий, я рекомендовал вам не разбирать файл сценария, потому что он не имеет стабильной структуры данных.

Например: для замены данных из строки иногда требуется регулярное выражениепользователь определяет переменную с тем же именем, что и регулярное выражение?

Я думаю, что лучший способ добавить зависимости с помощью команды выполнения gradle, например:

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

Вы можете найти плагины gradle, которые помогут намвместо этого извлекайте зависимости в проект.Затем выполните команду gradle с помощью скрипта Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...