2014-12-08 2 views
1

Я пытаюсь настроить sbt (версия 0.9.0) на использование webapp/dist в качестве каталога webappResource при выполнении задачи пакета в sbt и WebApp/приложение в качестве каталога webappResource при запуске контейнера: запуск команды, следуя этому описанию:webappResources в пакете: = Seq (baseDirectory.value ....) throws Анализ разбора ошибок

How to have different webapp resources for container:start and package tasks in SBT

Но оно проливает следующее сообщение об ошибке:

 

    error: eof expected but 'package' found. 
    webappResources in package := Seq(baseDirectory.value/"webapp"/"dist") 
        ^
    [error] Error parsing expression. 

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

Причина в том, что я использую gulp для управления веб-клиентом. Gulp запускает проект из папки приложения и компилирует (минимизацию и т. Д.) Проект webclient в папку dist. Когда я разрабатываю, я использую папку веб-приложение/приложения, как заявлено ниже:

 

    webappResources in Compile := Seq(baseDirectory.value/"webapp"/"app") 

Когда я создаю релиз, я сначала построить (минификация и т.д.) клиент WebApp в WebAPP/дист с помощью глотка. Затем я хочу упаковать содержимое webapp/dist в финальную войну.

Но я не могу переопределить настройку выше, чтобы использовать webapp/dist при использовании задачи пакета.

Я также пытался создать свою собственную конфигурацию, как это:

 

    webappResources in Compile := Seq(baseDirectory.value/"src"/"main"/"webapp"/"app") 

    lazy val ReleaseWarConfig = config("release-war") extend (Compile) 

    val root = (project in file(".")). 
     configs(ReleaseWarConfig). 
     settings(inConfig(ReleaseWarConfig)(webSettings): _*). 
     settings(
     webappResources in Compile := Seq(baseDirectory.value/"src"/"main"/"webapp"/"dist") 
    ) 
    // I have also tried webappResources in ReleaseConfig instead of Compile .. 

Но он по-прежнему использует каталог веб-приложение/приложения вместо каталога WebApp/Dist.

Любая помощь была бы очень признательна !!!!

ответ

0

Что такое макет каталога вашего проекта? Похоже, у вас есть свой веб-каталог ресурсов приложения на [MyProject]/WebApp/расстояние/, то есть у вас есть WEB-INF/ и WEB-INF/web.xml (и различные другие дополнительные ресурсы) под [myproject]/webapp/dist/ также. Это верно?

Чтобы установить местоположение каталога веб-ресурсов приложения к [MyProject]/WebApp/расстояние/, добавьте следующий параметр в конфигурацию SBT:

build.sbt:

webappSrc in webapp <<= (baseDirectory in Compile) map { _/"webapp"/"dist" } 

Вы можете узнать больше об этой настройке in the readme.

+0

извините, должен был упомянуть, я использую 0.9.0. Я делаю именно то, что вы предлагаете, но с базовым каталогом webapp/app для «режима разработки». При создании выпуска я использую gulp для компиляции webclient (minification и т. Д.) В итоговую папку webapp/dist. Я хочу использовать webapp/dist как webappSrc при выдаче команды пакета. Итак, вот в чем проблема: я не могу переопределить параметр webapp/app для команды пакета. Большое спасибо за то, что помогли мне! – s4w

+0

О, извините, я неправильно понял ваш вопрос. Я думаю, что с 1.0.0 я бы использовал [postProcess] (https://github.com/earldouglas/xsbt-web-plugin#modify-the-contents-of-the-prepared-web-application), чтобы справиться с этим, но Я не уверен в 0.9.0. Я посмотрю, смогу ли я понять это на 0,9 позже. – earldouglas

Смежные вопросы