Как вы используете projectDir в jvmFlags для appengineRun в Gradle? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь использовать свойство Gradle projectDir при указании пути для моего локального хранилища данных appEngine. Я думал, что это сработает:

appengine {
    run {
        jvmFlags = [
            "-Xdebug", 
            "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998",
            "-Ddatastore.backing_store=$projectDir/dev/db.bin"
        ]
    }
}

Я пробовал использовать $ projectDir, $ {projectDir}, $ project.projectDir и $ {project.projectDir}, но ничего не работает. Они либо генерируют ошибку java .lang.ArrayStoreException (без сообщения об ошибке) , либо просто используют указанную фактическую строку (например, $ {projectDir} /dev/db.bin) как путь к хранилищу данных.

Как указать путь к каталогу проекта Gradle для параметра jvmFlags при использовании плагина Google appengine (appengine-gradle-plugin)?

1 Ответ

1 голос
/ 07 мая 2020

Чтобы использовать свойство Gradle projectDir внутри массива jvmFlags, вы должны преобразовать литерал, используя свойство, в строку. Возможно, кто-то еще точно знает, почему, поскольку источник для плагина использует тип List для свойства jvmFlags в задаче плагина. В любом случае, я просто добавил метод toString () в конец литерала, как показано ниже.

appengine {
    run {
        jvmFlags = [
            "-Xdebug", 
            "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998",
            "-Ddatastore.backing_store=$projectDir/dev/db.bin".toString()
        ]
    }
}
...