Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.apache.maven.project.MavenProject
- import org.apache.maven.scm.provider.ScmUrlUtils
- import org.codehaus.gmaven.mojo.GroovyMojo
- /**
- * @goal commit-projects
- */
- public class CommitProjectsMojo extends GroovyMojo
- {
- /**
- * @parameter expression="${project}"
- * @required
- * @readonly
- */
- MavenProject project
- /**
- * The SCM connection URL for developers.
- *
- * @parameter default-value="${project.scm.developerConnection}"
- * @required
- */
- private String developerConnectionUrl;
- /**
- * @parameter expression="${commit-projects.svnUserName}"
- */
- private String svnUsername;
- /**
- * @parameter expression="${commit-projects.svnPassword}"
- */
- private String svnPassword;
- void execute() {
- if (!ScmUrlUtils.isValid(developerConnectionUrl)) {
- log.info('developerConnectionUrl is not valid: ' + developerConnectionUrl)
- log.info('skipping...')
- return
- }
- def providerSpecificPart = ScmUrlUtils.getProviderSpecificPart(developerConnectionUrl)
- if(svnUsername == null) {
- ant.input(message: 'SVN Username: ', addproperty: 'commit-projects.svnUserName')
- svnUsername = ant.project.properties.'commit-projects.svnUserName'
- System.properties.setProperty('commit-projects.svnUserName', svnUsername)
- }
- if(svnPassword == null) {
- ant.input(message: 'SVN Password: ', addproperty: 'commit-projects.svnPassword') {
- handler(classname: "org.apache.tools.ant.input.SecureInputHandler")
- }
- svnPassword = ant.project.properties.'commit-projects.svnPassword'
- System.properties.setProperty('commit-projects.svnPassword', svnPassword)
- }
- log.info('Getting ready to create: ' + providerSpecificPart)
- ant.input(message: 'Press Return key to continue...')
- ant.exec(executable: 'svn', dir: project.basedir, failonerror: true) {
- arg(value: 'mkdir')
- arg(value: '--parents')
- arg(value: '-m')
- arg(value: '[wizard-archetype-maven-plugin] Create project directory.')
- arg(value: providerSpecificPart)
- arg(value: '--username')
- arg(value: svnUsername)
- arg(value: '--password')
- arg(value: svnPassword)
- }
- log.info('Checking out: ' + providerSpecificPart)
- ant.exec(executable: 'svn', dir: project.basedir, failonerror: true) {
- arg(value: 'checkout')
- arg(value: providerSpecificPart)
- arg(value: '-r')
- arg(value: 'HEAD')
- arg(value: '--depth=immediates')
- arg(value: '--force')
- arg(value: '--username')
- arg(value: svnUsername)
- arg(value: '--password')
- arg(value: svnPassword)
- arg(value: project.basedir)
- }
- log.info('Adding src')
- ant.exec(executable: 'svn', dir: project.basedir, failonerror: true) {
- arg(value: 'add')
- arg(value: 'src')
- arg(value: '--force')
- }
- log.info('Adding pom.xml')
- ant.exec(executable: 'svn', dir: project.basedir, failonerror: true) {
- arg(value: 'add')
- arg(value: 'pom.xml')
- arg(value: '--force')
- }
- def CrLf = "\r\n";
- def ignores = '.checkstyle' + CrLf + '.classpath' + CrLf + '.fbprefs' + CrLf + '.project' + CrLf + '.settings' + CrLf + 'META-INF' + CrLf + 'bin' + CrLf + 'plugin.xml' + CrLf + 'target' + CrLf + 'OSGI-INF'
- log.info('Ignoring: ' + ignores)
- ant.exec(executable: 'svn', dir: project.basedir, failonerror: true) {
- arg(value: 'propset')
- arg(value: 'svn:ignore')
- arg(value: ignores)
- arg(value: project.basedir)
- }
- log.info('Committing project')
- ant.exec(executable: 'svn', dir: project.basedir) {
- arg(value: 'commit')
- arg(value: '-m')
- arg(value: '[wizard-archetype-maven-plugin] Create initial project.')
- arg(value: '--username')
- arg(value: svnUsername)
- arg(value: '--password')
- arg(value: svnPassword)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement