diff options
author | Andrew Grimberg <grimbeaj@gmail.com> | 2014-04-02 15:01:00 -0700 |
---|---|---|
committer | Andrew Grimberg <grimbeaj@gmail.com> | 2014-04-02 16:51:03 -0700 |
commit | 9b32e0fbad9ab83928d5032df344b30b24266bbb (patch) | |
tree | 8b70083040f65838ceb0b1e494b024059b3b9b8a /jenkins_jobs/modules/project_maven.py | |
parent | 72c02d41068a3935717d8666531781d7f05ced52 (diff) | |
download | python-jenkins-job-builder-9b32e0fbad9ab83928d5032df344b30b24266bbb.tar.gz python-jenkins-job-builder-9b32e0fbad9ab83928d5032df344b30b24266bbb.tar.xz python-jenkins-job-builder-9b32e0fbad9ab83928d5032df344b30b24266bbb.zip |
Allow custom settings configs for maven projects
Allow custom settings & global-settings config files to be configured
for maven projects.
In addition, the previously defined empty nodes for these configurations
were misnamed and this corrects that as well.
This change also switches to using an included test as an example.
Change-Id: I9f832f498e358268b3896ead3a78462e408bdd9d
Signed-off-by: Andrew Grimberg <grimbeaj@gmail.com>
Diffstat (limited to 'jenkins_jobs/modules/project_maven.py')
-rwxr-xr-x | jenkins_jobs/modules/project_maven.py | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/jenkins_jobs/modules/project_maven.py b/jenkins_jobs/modules/project_maven.py index 7dd8a964..138f16fa 100755 --- a/jenkins_jobs/modules/project_maven.py +++ b/jenkins_jobs/modules/project_maven.py @@ -37,22 +37,14 @@ in the :ref:`Job` definition. a SNAPSHOT dependency is built or not. (defaults to true) * **automatic-archiving** (`bool`): Activate automatic artifact archiving (defaults to true). + * **settings** (`str`): Path to custom maven settings file (optional) + * **global-settings** (`str`): Path to custom maven global settings file + (optional) + +Example: + + .. literalinclude:: /../../tests/general/fixtures/project-maven001.yaml -Example:: - - job: - name: doc_job - project-type: maven - - maven: - root-module: - group-id: org.example.docs - artifact-id: example-guide - root-pom: doc/src/pom.xml - goals: "clean generate-sources" - maven-opts: '-Dmyvar=/path/somewhere' - maven-name: Maven3 - automatic-archiving: true """ import xml.etree.ElementTree as XML @@ -71,6 +63,17 @@ class Maven(jenkins_jobs.modules.base.Base): 'hudson.maven.local_repo.PerExecutorLocalRepositoryLocator', } + settings = { + 'default-settings': + 'jenkins.mvn.DefaultSettingsProvider', + 'settings': + 'jenkins.mvn.FilePathSettingsProvider', + 'default-global-settings': + 'jenkins.mvn.DefaultGlobalSettingsProvider', + 'global-settings': + 'jenkins.mvn.FilePathGlobalSettingsProvider', + } + def root_xml(self, data): xml_parent = XML.Element('maven2-moduleset') if 'maven' not in data: @@ -117,8 +120,26 @@ class Maven(jenkins_jobs.modules.base.Base): XML.SubElement(xml_parent, 'processPlugins').text = 'false' XML.SubElement(xml_parent, 'mavenValidationLevel').text = '-1' XML.SubElement(xml_parent, 'runHeadless').text = 'false' - XML.SubElement(xml_parent, 'settingConfigId') - XML.SubElement(xml_parent, 'globalSettingConfigId') + if 'settings' in data['maven']: + settings = XML.SubElement(xml_parent, 'settings', + {'class': + self.settings['settings']}) + XML.SubElement(settings, 'path').text = str( + data['maven'].get('settings', '')) + else: + XML.SubElement(xml_parent, 'settings', + {'class': + self.settings['default-settings']}) + if 'global-settings' in data['maven']: + settings = XML.SubElement(xml_parent, 'globalSettings', + {'class': + self.settings['global-settings']}) + XML.SubElement(settings, 'path').text = str( + data['maven'].get('global-settings', '')) + else: + XML.SubElement(xml_parent, 'globalSettings', + {'class': + self.settings['default-global-settings']}) run_post_steps = XML.SubElement(xml_parent, 'runPostStepsIfResult') XML.SubElement(run_post_steps, 'name').text = 'FAILURE' |