2013-02-18 93 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将认识的来源,但是我对Grails做什么?我需要在某个配置文件中指定它吗?

回答

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;) – 2013-02-18 18:33:59

+0

@BurtBeckwith是一个更好的选择。 :-) – 2013-02-18 18:54:24

+0

谢谢!但我必须说,** _ Events.groovy **应该被放置到** scripts/**文件夹中,而不是** events/** – Alex 2013-02-20 11:29:33

相关问题