NOTE: I no longer work with ATG, so I can't maintain this module. Try this fork.
Provides a custom Ivy resolver for declaring dependencies on ATG modules. The
modules must be available locally and are resolved via the DYNAMO_HOME
environment variable.
// always use provided scope since the modules will be provided by ATG
provided group:'ATG_MODULE', name:'DAS', version:'SNAPSHOT'
Module dependencies use the group ATG_MODULE
.
The artifact name is the name of the module,e.g., DAS
.
The version should be SNAPSHOT
so modules can be updated.
If you are developing an ATG module, your module can declare a dependency on itself. e.g.,
provided group:'ATG_MODULE', name:'MYMODULE', version:'SNAPSHOT'
The resolver will automatically pick up any other modules your module depends on in its MANIFEST.MF, so you don't have to declare dependencies twice.
Any build system that utilizes Ivy will work, but here are some common examples:
You can use a buildscript
section to download the resolver jar so it can be
added as a repository in your main script:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.noahsloan.atg:atg-resolver:1.0'
}
}
allprojects { // see http://gradle.org/current/docs/userguide/userguide_single.html#sec:subproject_configuration
repositories {
add com.noahsloan.atg.ivy.AtgModuleRepository.newResolver
}
dependencies {
compile group:"ATG_MODULE", name:"DAS",version:"SNAPSHOT"
}
// the rest of your tasks go here
}
Use the Grails plugin and declare dependencies as above.
If you can't use the plugin for some reason, then you can add this to grails-app/conf/BuildConfig.groovy:
@Grab(group='com.noahsloan.atg',module="atg-resolver",version="1.0")
import com.noahsloan.atg.ivy.AtgModuleRepository
grails.project.dependency.resolution = {
resolver AtgModuleRepository.newResolver
// ...
}
See the plugin for an example.
Creating the resolver is simple.
DependencyResolver resolver = com.noahsloan.atg.ivy.AtgModuleRepository.getNewResolver();
What you do with it is beyond the scope of this file right now.