Моя среда разработки выглядит следующим образом:
Версия Grails: 1.3.7. РЕЛИЗ
Выполните следующие действия:
mkdir GrailsProjects
cd GrailsProjects
grails create-plugin grails-domain
cd grails-domain
grails create-domain-class Book
cd ..
grails create-plugin grails-service
cd grails-service
grails create-service BookService
Добавить
grails.plugin.location."grails-domain" = "../grails-domain"
вверху файла BuildConfig.groovy
в проекте grails-service
Используя текстовый редактор, измените содержимое файла Book.groovy
на:
package grails.domain
class Book {
String name
static constraints = {
}
}
Измените содержимое файла BookService.groovy
на:
package grails.service
import grails.domain.Book
class BookService {
static transactional = true
def someMethod() {
def book = Book.findByName("Fooled by randomness")
}
}
При попытке вызвать метод BookService.someMethod
, Grails не может найти метод findByName
в Book
. Book.name
виден внутри BookService.someMethod
, что означает, что проект плагина grails-service
может разрешить код в проекте плагина grails-domain
.
Шаги в точности такие, как указано выше; дополнительные действия не выполнялись.
Это ожидаемое поведение с проектами плагинов Grails? Есть ли другой способ разделить домены и классы обслуживания с Grails?