So the logic used to prepare the arguments for executing Maven are very similar between MavenBuild and MavenModuleSetBuild. I'm unsure why they don't share a common source? There's one glaring difference for me that is causing trouble and that's lack of support for the "alternate settings" attribute when running a MavenBuild directly (by going into the Modules of a Maven build and running a module directly.)
if (project.getAlternateSettings() != null) {
if (IOUtils.isAbsolute(project.getAlternateSettings())) {
margs.add("-s").add(project.getAlternateSettings());
} else {
FilePath mrSettings = getModuleRoot().child(project.getAlternateSettings());
FilePath wsSettings = getWorkspace().child(project.getAlternateSettings());
if (!wsSettings.exists() && mrSettings.exists())
wsSettings = mrSettings;
margs.add("-s").add(wsSettings.getRemote());
}
}
I'm putting a patch together for this on Github and will update the issue when it's complete.
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
changelog.html
http://jenkins-ci.org/commit/core/f6bd1f306d9b8bf20ff78fb84ae19a07b3fb5c12
Log:
[FIXED JENKINS-8670] recording the fix