diff --git a/src/main/groovy/nebula/plugin/publishing/contacts/BaseContactPluginConfigurator.groovy b/src/main/groovy/nebula/plugin/publishing/contacts/BaseContactPluginConfigurator.groovy new file mode 100644 index 00000000..e80227e3 --- /dev/null +++ b/src/main/groovy/nebula/plugin/publishing/contacts/BaseContactPluginConfigurator.groovy @@ -0,0 +1,31 @@ +package nebula.plugin.publishing.contacts + +import nebula.plugin.contacts.BaseContactsPlugin +import nebula.plugin.contacts.Contact +import org.gradle.api.publish.maven.MavenPublication + +class BaseContactPluginConfigurator { + + static void configureContacts(BaseContactsPlugin contactsPlugin, MavenPublication publication) { + publication.pom.developers { + def myContacts = contactsPlugin.getAllContacts() + myContacts.each { Contact contact -> + developer { + if (contact.github) { + id = contact.github + } else if (contact.twitter) { + id = contact.twitter + } + if (contact.moniker) { + name = contact.moniker + } + + email = contact.email + if (contact.roles) { + roles = contact.roles + } + } + } + } + } +} diff --git a/src/main/groovy/nebula/plugin/publishing/maven/MavenDeveloperPlugin.groovy b/src/main/groovy/nebula/plugin/publishing/maven/MavenDeveloperPlugin.groovy index 597390a0..e923a3bb 100644 --- a/src/main/groovy/nebula/plugin/publishing/maven/MavenDeveloperPlugin.groovy +++ b/src/main/groovy/nebula/plugin/publishing/maven/MavenDeveloperPlugin.groovy @@ -15,6 +15,7 @@ */ package nebula.plugin.publishing.maven +import nebula.plugin.publishing.contacts.BaseContactPluginConfigurator import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.publish.maven.MavenPublication @@ -30,37 +31,14 @@ class MavenDeveloperPlugin implements Plugin { withType(MavenPublication) { publication -> if (! project.state.executed) { project.afterEvaluate { - configureContacts(contactsPlugin, publication) + BaseContactPluginConfigurator.configureContacts(contactsPlugin, publication) } } else { - configureContacts(contactsPlugin, publication) + BaseContactPluginConfigurator.configureContacts(contactsPlugin, publication) } } } } } } - - private void configureContacts(contactsPlugin, MavenPublication publication) { - publication.pom.developers { - def myContacts = contactsPlugin.getAllContacts() - myContacts.each { contact -> - developer { - if (contact.github) { - id = contact.github - } else if (contact.twitter) { - id = contact.twitter - } - if (contact.moniker) { - name = contact.moniker - } - - email = contact.email - if (contact.roles) { - roles = contact.roles - } - } - } - } - } }