我用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? 我需要在一些配置文件或者更明确的定义呢?
答案就在这里:
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。