3

私は Grails アプリケーションの開発に STS を使用しており、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 に対してはどうすればよいですか? 構成ファイルなどで指定する必要がありますか?

4

1 に答える 1

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を更新し続ける必要があります。

于 2013-02-18T18:00:51.183 に答える