Вопрос по – удаление просмотров плагинов (gsp) при построении войны

1

Мы используем различные плагины в нашем приложении Grails (такие как логирование, Spring Security Core, UI, ACL и многие другие). Теперь эти плагины поставляются с gsps по умолчанию (в папке views каждого плагина).

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

Я пытаюсь это прямо сейчас в BuildConfig.groovy, как показано ниже:

<code>grails.project.dependency.resolution = {
grails.war.resources = { stagingDir ->
   println "Customized delete started..."
   delete{fileset dir: "${stagingDir}/WEB-INF/plugins/logging-0.1/grails-app/views/"}
   delete{fileset dir: "${stagingDir}/WEB-INF/plugins/spring-security-ui-0.1.2/grails-app/views/"}
    }
   }
</code>

Но проблема в том, что код пытается удалить представления, когда они еще не созданы процессом военного строительства. Следовательно, я получаю файл not found для этих плагинов.

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

Заранее спасибо.. Priyank

Ваш Ответ

1   ответ
2

http://grails.1312388.n4.nabble.com/deleting-plugins-views-gsp-when-building-the-war-td4560517.html (The answer hasn't yet shown up in nabble)

Вы можете удалить / добавить файлы из / в файл war в eventCreateWarStart событие указано в файле scripts / _Events.groovy.

Это может сработать:

имя файла: scripts / _Events.groovy

eventCreateWarStart = { warName, stagingDir ->
   Ant.delete(dir: "${stagingDir}/WEB-INF/plugins/logging-0.1/grails-app/views")
   Ant.delete(dir: "${stagingDir}/WEB-INF/classes", includes:"gsp_logging*.*")
   Ant.delete(dir: "${stagingDir}/WEB-INF/plugins/spring-security-ui-0.1.2/grails-app/views")
   Ant.delete(dir: "${stagingDir}/WEB-INF/classes", includes:"gsp_springSecurityUi*.*")
}

Я не уверен, что вы также можете удалить классы плагинов без проблем. Мы использовали классы «Фильтр» для «отключения» контроллеры предоставлены плагинами.

Как примечание вы можете отключить & quot; только для разработки & quot; плагины в производственной среде с использованием еще не документированного «grails.plugins.exclude» особенность:

Пример: в Config.groovy:

import grails.util.Environment

if(Environment.current == Environment.PRODUCTION) {
    grails.plugin.excludes = ['somePluginName']
}
Error: User Rate Limit Exceededant.apache.org/manual/Tasks/delete.htmlError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded pri_dev

Похожие вопросы