Начни кроовыш с заданием gradle

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

Я хотел бы запустить интерактивную оболочку Groovy из простой задачи, загруженной с моего пути к классам проекта, чтобы иметь возможность использовать инфраструктуру проекта для выполнения таких задач, как манипулирование данными в системе и т. Д.

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

configurations {
   console
}

buildscript {
   repositories {
       jcenter()
   }
   dependencies {
       classpath 'org.akhikhl.gretty:gretty:2.0.0'
   }
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
apply plugin: 'eclipse-wtp'

war {
    webAppDirName = 'WebApp/WebContent'
}

gretty {
  servletContainer = 'tomcat8'
  enableNaming = true
}


repositories {
    jcenter()
    maven {
        url "http://repository.primefaces.org"
    }
}


dependencies {
    compile "org.primefaces:primefaces:6.0"
    compile "org.primefaces.themes:cupertino:1.0.10"
    compile 'joda-time:joda-time:2.7'
    compile 'javax.el:javax.el-api:3.0.0'
    compile 'mysql:mysql-connector-java:5.1.36'
    compile 'commons-validator:commons-validator:1.4.1'
    compile 'org.apache.commons:commons-email:1.4'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'org.apache.commons:commons-math3:3.6'
    //
    compile 'commons-codec:commons-codec:1.3'
    compile 'commons-beanutils:commons-beanutils:1.8.3'
    compile 'commons-collections:commons-collections:3.2'
    compile 'commons-digester:commons-digester:1.8'
    compile 'commons-logging:commons-logging:1.1.1'
    //
    compile 'commons-fileupload:commons-fileupload:1.3.1'
    compile 'org.apache.myfaces.core:myfaces-api:2.2.8'
    compile 'org.apache.myfaces.core:myfaces-impl:2.2.8'
    compile 'org.apache.myfaces.core:myfaces-bundle:2.2.8'

  // gretty plugin handling the tomcat server
  gretty 'org.apache.tomcat:tomcat-dbcp:8.0.1'
  gretty 'org.apache.tomcat:tomcat:8.0.1'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'

  // console dependencies
  console 'commons-cli:commons-cli:1.4'
  console('jline:jline:2.14.+') {
      exclude(group: 'junit', module: 'junit')
  }
  console 'org.codehaus.groovy:groovy-groovysh:2.4.+'
}

sourceSets {
    main {
        java {
            srcDirs = ['WebApp/src', 'src/QC_Routines/src']
        }
        resources {
            srcDirs = ['WebApp/WebContent/resources']
        }

    }
    test {
        java {
            srcDirs = ['WebApp/junit']
        }
    }
}

task(console, dependsOn: 'classes') {
  doLast{

    def classpath = sourceSets.main.runtimeClasspath + configurations.console
    def command = [
        'java',
        '-cp', classpath.collect().join(System.getProperty('path.separator')),
        'org.codehaus.groovy.tools.shell.Main',
        '--color', '--terminal', 'unix'
    ]

    def proc = new ProcessBuilder(command)
        .redirectOutput(ProcessBuilder.Redirect.INHERIT)
        .redirectInput(ProcessBuilder.Redirect.INHERIT)
        .redirectError(ProcessBuilder.Redirect.INHERIT)
        .start()

    proc.waitFor()

    if (0 != proc.exitValue()) {
        throw new RuntimeException("console exited with status: ${proc.exitValue()}")
    }
  }
}

Когда я запускаю консольную задачу, она завершается после успешной сборки:

$./gradlew console

СТРОИТЬ УСПЕШНО в 2с

3 действенных задания: 1 выполнено, 2 актуально

Любые предложения о том, почему это не работает, или как действовать? Версии программного обеспечения ниже:

$ gradle - версия

Gradle 4.4.1

Время сборки: 2017-12-20 15:45:23 UTC Редакция: 10ed9dc355dc39f6307cc98fbd8cea314bdd381c

Groovy: 2.4.12

Ant: Apache Ant (TM) версии 1.9.9, скомпилирован 2 февраля 2017 г.

JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)

ОС: Linux 4.13.0-32-generic amd64

0 ответов

Другие вопросы по тегам