e.metridoc.metridoc-project.0.21.source-code.build.groovy Maven / Gradle / Ivy
/*
* Copyright 2010 Trustees of the University of Pennsylvania Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
def root = new File(getClass().protectionDomain.codeSource.location.path).parent
def buildHelper = getBuildHelper()
buildHelper.root = root
//add dependencies here
buildHelper.addDependency(group:'com.googlecode.metridoc', module: 'metridoc-all')
println "Running build with steps ${args}"
args.each {
if(containsStep(it)) {
this."${it}"()
} else {
buildHelper."${it}"()
}
}
def getBuildHelper() {
def className = "metridoc.build.BuildHelper"
try {
return Class.forName(className).newInstance()
} catch (ClassNotFoundException) {
def url = new URL("http://metridoc.googlecode.com/svn/trunk/core/metridoc-project/src/main/groovy/metridoc/build/BuildHelper.groovy")
String text = url.getText("utf-8")
GroovyClassLoader classLoader = new GroovyClassLoader()
return classLoader.parseClass(text, className).newInstance()
}
}
private boolean containsStep(String stepName) {
boolean result = false
this.metaClass.methods.each {method ->
if(method.name == stepName) {
result = true
}
}
return result
}