summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs/modules/project_maven.py
diff options
context:
space:
mode:
Diffstat (limited to 'jenkins_jobs/modules/project_maven.py')
-rwxr-xr-x[-rw-r--r--]jenkins_jobs/modules/project_maven.py24
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()