2013-02-18 1 views
3

Я использую STS для разработки приложения Grails, и мне нужно использовать там кучу классов, созданных утилитой wsimport. Для того, чтобы не смешивать мой источник с сгенерированного источником, я хочу, чтобы добавить отдельный каталог и поставить там сгенерированные классы, например:Как добавить исходную папку в приложение grails

grails-project 
| 
|-- .classpath 
|-- .groovy 
|-- .project 
|-- .settings 
|-- application.properties 
|-- grails-app 
|-- lib 
|-- scripts 
|-- src 
| |-- groovy 
| |-- java 
| `-- wsimport  <- where I want to make additional source folder 
|-- target 
|-- target-eclipse 
|-- test 
`-- web-app 

Я могу добавить новый путь к классам .classpath файл и STS распознает источники, но что мне делать с Граалем? Нужно ли указывать его в каком-либо файле конфигурации или что-то в этом роде?

ответ

6

Ответ здесь:

http://ofps.oreilly.com/titles/9781449323936/chapter_configuration.html

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

extraSrcDirs = ["$basedir/src/extra1", "$basedir/src/extra2", ...] 

eventCompileStart = { 
    for (String path in extraSrcDirs) { 
     projectCompiler.srcDirectories << path 
    } 
    copyResources buildSettings.resourcesDir 
} 

eventCreateWarStart = { warName, stagingDir -> 
    copyResources "$stagingDir/WEB-INF/classes" 
} 

private copyResources(destination) { 
    ant.copy(todir: destination, 
      failonerror: false, 
      preservelastmodified: true) { 
     for (String path in extraSrcDirs) { 
     fileset(dir: path) { 
      exclude(name: '*.groovy') 
      exclude(name: '*.java') 
     } 
     } 
    } 
} 

Это позволит Grails компилятор знает о дополнительных исходных папок, но я не думайте, что STS достаточно знать о папках с источниками. Для этого вам нужно будет продолжить обновление .classpath проекта.

+0

И вы можете купить книгу здесь http://shop.oreilly.com/product/0636920024750.do;) –

+0

@BurtBeckwith да намного лучший вариант. :-) –

+0

Спасибо! Но я должен сказать, что ** _ Events.groovy ** следует поместить в ** папку scripts/**, а не ** события/** – Alex