我使用STS开发Grails应用程序,我需要在那里使用wsimport实用程序生成的一堆类。为了不将我的源与自动生成的源混合,我想添加单独的目录并将生成的类放在那里,如下所示:
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?我是否需要在某个配置文件中指定它?
答案 0 :(得分: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。