diff options
Diffstat (limited to 'jenkins_jobs/modules/project_maven.py')
-rwxr-xr-x[-rw-r--r--] | jenkins_jobs/modules/project_maven.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/project_maven.py b/jenkins_jobs/modules/project_maven.py index 00520306..7dd8a964 100644..100755 --- a/jenkins_jobs/modules/project_maven.py +++ b/jenkins_jobs/modules/project_maven.py @@ -30,6 +30,9 @@ in the :ref:`Job` definition. * **maven-name** (`str`): Installation of maven which should be used. Not setting ``maven-name`` appears to use the first maven install defined in the global jenkins config. + * **private-repository** ('str'): Whether to use a private maven repository + Possible values are `default`, `local-to-workspace` and + `local-to-executor`. * **ignore-upstream-changes** (`bool`): Do not start a build whenever a SNAPSHOT dependency is built or not. (defaults to true) * **automatic-archiving** (`bool`): Activate automatic artifact archiving @@ -59,6 +62,15 @@ import jenkins_jobs.modules.base class Maven(jenkins_jobs.modules.base.Base): sequence = 0 + choices_private_repo = { + 'default': + 'hudson.maven.local_repo.DefaultLocalRepositoryLocator', + 'local-to-workspace': + 'hudson.maven.local_repo.PerJobLocalRepositoryLocator', + 'local-to-executor': + 'hudson.maven.local_repo.PerExecutorLocalRepositoryLocator', + } + def root_xml(self, data): xml_parent = XML.Element('maven2-moduleset') if 'maven' not in data: @@ -79,6 +91,18 @@ class Maven(jenkins_jobs.modules.base.Base): if maven_name: XML.SubElement(xml_parent, 'mavenName').text = maven_name + private_repo = data['maven'].get('private-repository') + if private_repo: + if private_repo not in self.choices_private_repo.keys(): + raise ValueError('Not a valid private-repository "%s", ' + 'must be one of "%s"' % + (private_repo, + ", ".join(self.choices_private_repo.keys()))) + XML.SubElement(xml_parent, + 'localRepository', + attrib={'class': + self.choices_private_repo[private_repo]}) + XML.SubElement(xml_parent, 'ignoreUpstremChanges').text = str( data['maven'].get('ignore-upstream-changes', True)).lower() |