2 * Copyright 2004-2005 the original author or authors.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * Gant script that handles the packaging of Grails plug-ins
20 * @author Graeme Rocher
24 import org
.codehaus
.groovy
.grails
.commons
.GrailsClassUtils as GCU
26 GCL
= new GroovyClassLoader()
28 Ant
.property(environment
:"env")
29 grailsHome
= Ant
.antProject
.properties
."env.GRAILS_HOME"
34 target( packagePlugins
: "Packages any Grails plugins that are installed for this project") {
38 def basePluginFile
= baseFile
.listFiles().find
{ it
.name
.endsWith("GrailsPlugin.groovy")}
42 basePlugin
= new org
.springframework
.core
.io
.FileSystemResource(basePluginFile
)
43 pluginResources
<< basePlugin
46 pluginResources
+= resolveResources("file:${basedir}/plugins/*/*GrailsPlugin.groovy").toList()
47 for(p in pluginResources
) {
48 def pluginBase
= p
.file
.parentFile
.canonicalFile
49 def pluginPath
= pluginBase
.absolutePath
50 def pluginName
= pluginBase
.name
51 def pluginNameWithVersion
= pluginBase
.name
54 if(new File("${pluginBase}/grails-app/conf/hibernate").exists()) {
55 copy(todir
:classesDirPath
, failonerror
:false) {
56 fileset(dir
:"${pluginBase}/grails-app/conf/hibernate", includes
:"**", excludes
:"*.groovy")
59 if(new File("${pluginBase}/grails-app/conf").exists()) {
60 copy(todir
:classesDirPath
, failonerror
:false) {
61 fileset(dir
:"${pluginBase}/grails-app/conf", includes
:"*", excludes
:"*.groovy")
64 if(new File("${pluginPath}/web-app").exists()) {
65 Ant
.mkdir(dir
:"${basedir}/web-app/plugins/${pluginName}")
67 copy(todir
:"${basedir}/web-app/plugins/${pluginName}") {
68 fileset(dir
:"${pluginBase}/web-app", includes
:"**", excludes
:"**/WEB-INF/**, **/META-INF/**")
76 e
.printStackTrace(System
.out
)