Как мне запустить WAR в Jetty с помощью плагина Gretty? - PullRequest
0 голосов
/ 10 июля 2019

Моя текущая цель - научиться запускать мое веб-приложение, работающее в экземпляре Jetty на моем компьютере, чтобы я мог писать тесты Selenium для него.Плагин Gretty, похоже, загружается, но я не смог найти никаких реальных инструкций о том, как создать и настроить задачу для этого.

Часть проблемы заключается в том, что существует путаница с различными версиямии выпуски плагина Gretty.Во-первых, просто загрузить его было упражнением методом проб и ошибок.

Я пытаюсь использовать Gradle 5.4.1 и Gretty 2.3.1, которые, как я считаю, являются текущими версиями (в настоящее время).

У меня есть три подпроекта "laoi" зависит от "aofl" зависит от "efl".Сборка laoi создает файл WAR.Задача appRunWar, похоже, хочет создать и запустить собственный WAR-файл, а не использовать мой (по крайней мере, похоже, именно так и происходит).

settings.gradle:

rootProject.name = 'aoi'
include 'cm', 'efl', 'aofl', 'laoi', 'uiTest'

build. Gradle (laoi):

static def getDate() {
    return new Date().format('yyyyMMdd-HHmmss')
}

final String timepickerAddonVersion = '1.6.3'
final String datatablesVersion = '1.10.19'
final String jqueryUIVersion = '1.12.1'
final String jqueryVersion = '3.2.1'

if (null == System.properties['aoi.release'] || null == System.properties['aoi.iteration']) {
    if (null == System.env['RELEASE'] || null == System.env['ITERATION']) {
        ext.ITERATION = "un"
        ext.RELEASE = "dev"
    } else {
        ext.ITERATION = System.env['ITERATION']
        ext.RELEASE = System.env['RELEASE']
    }
} else {
    ext.ITERATION = System.properties['aoi.iteration']
    ext.RELEASE = System.properties['aoi.release']
}
System.setProperty('aoi.iteration', ext.ITERATION)
System.setProperty('aoi.release', ext.RELEASE)

if (null == System.properties['aoi.manifest']) {
    if (null == System.env['MANIFEST']) {
        System.out.println("Using default manifest name.")
        ext.MANIFEST = "aoiManifest"
        System.out.println("Manifest: ${ext.MANIFEST}")
    } else {
        ext.MANIFEST = System.env['MANIFEST']
    }
} else {
    ext.MANIFEST = System.properties['aoi.manifest']
}
System.setProperty('aoi.manifest', ext.MANIFEST)
System.out.println("Manifest: ${ext.MANIFEST}")

final String warFileName = 'aoi-'+ System.properties['aoi.release'] +'_'+ System.properties['aoi.iteration'] + ".war"
println "War file name: ${warFileName}"

final String sourceManifestName = "${ext.MANIFEST}.xml"
println "Source manifest name: ${sourceManifestName}"

def rootLibs = new File("${rootDir}/libs")

repositories {
    mavenCentral()
    jcenter()
    flatDir {
        dirs "${rootDir}/libs"
    }
}


compileScala {
    dependsOn ":efl:test", ":aofl:test"
}

task copyManifest(type: Copy) {
    from('src/main/resources') {
        include sourceManifestName
        rename sourceManifestName, 'aoiManifest.xml'
    }
    into("${buildDir}/resources/main/bootstrap/liftweb")
}

task createVersionFile {
    dependsOn "processResources"
    doLast {
        new File("${buildDir}/resources/main/aoiVersion.conf").text = "AOI_VERSION=" + System.properties['aoi.release'] +'-'+ System.properties['aoi.iteration'] + " (" + getDate() + ")"
        new File("${buildDir}/resources/main/WebJarVersions.conf").text =
"""jQuery-Timepicker-Addon=$timepickerAddonVersion
datatables=$datatablesVersion
jquery=$jqueryVersion
jquery-ui=$jqueryUIVersion
jquery-ui-themes=$jqueryUIVersion
"""
    }
}

war {
    dependsOn ":aofl:test", "compileScala", "copyManifest", "processResources", "createVersionFile"
    setDestinationDirectory(rootLibs)

    setArchiveFileName(warFileName)

    from('${buildDir}/resources/main') {
        include '**/*.xml'
        into("classes")
    }
}

dependencies {
    implementation project(":efl")
    implementation project(":aofl")
    implementation "org.webjars:jquery:$jqueryVersion"
    implementation "org.webjars:jquery-ui:$jqueryUIVersion"
    implementation "org.webjars:jquery-ui-themes:$jqueryUIVersion"
    implementation "org.webjars:datatables:$datatablesVersion"
    implementation "org.webjars:jQuery-Timepicker-Addon:$timepickerAddonVersion"
    implementation 'org.webjars:webjars-servlet-2.x:1.1'
}
...