提交 b8adcb43 编写于 作者: I imod

add global maven config to define default settings providers

上级 6327e265
...@@ -40,6 +40,7 @@ import hudson.model.Node; ...@@ -40,6 +40,7 @@ import hudson.model.Node;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.mvn.DefaultGlobalSettingsProvider; import jenkins.mvn.DefaultGlobalSettingsProvider;
import jenkins.mvn.DefaultSettingsProvider; import jenkins.mvn.DefaultSettingsProvider;
import jenkins.mvn.GlobalMavenConfig;
import jenkins.mvn.GlobalSettingsProvider; import jenkins.mvn.GlobalSettingsProvider;
import jenkins.mvn.SettingsProvider; import jenkins.mvn.SettingsProvider;
import hudson.model.TaskListener; import hudson.model.TaskListener;
...@@ -163,8 +164,8 @@ public class Maven extends Builder { ...@@ -163,8 +164,8 @@ public class Maven extends Builder {
this.properties = Util.fixEmptyAndTrim(properties); this.properties = Util.fixEmptyAndTrim(properties);
this.jvmOptions = Util.fixEmptyAndTrim(jvmOptions); this.jvmOptions = Util.fixEmptyAndTrim(jvmOptions);
this.usePrivateRepository = usePrivateRepository; this.usePrivateRepository = usePrivateRepository;
this.settings = settings != null ? settings : new DefaultSettingsProvider(); this.settings = settings;
this.globalSettings = globalSettings != null ? globalSettings : new DefaultGlobalSettingsProvider(); this.globalSettings = globalSettings;
} }
public String getTargets() { public String getTargets() {
...@@ -175,14 +176,22 @@ public class Maven extends Builder { ...@@ -175,14 +176,22 @@ public class Maven extends Builder {
* @since 1.491 * @since 1.491
*/ */
public SettingsProvider getSettings() { public SettingsProvider getSettings() {
return settings != null ? settings : new DefaultSettingsProvider(); return settings != null ? settings : GlobalMavenConfig.get().getSettingsProvider();
}
protected void setSettings(SettingsProvider settings) {
this.settings = settings;
} }
/** /**
* @since 1.491 * @since 1.491
*/ */
public GlobalSettingsProvider getGlobalSettings() { public GlobalSettingsProvider getGlobalSettings() {
return globalSettings != null ? globalSettings : new DefaultGlobalSettingsProvider(); return globalSettings != null ? globalSettings : GlobalMavenConfig.get().getGlobalSettingsProvider();
}
protected void setGlobalSettings(GlobalSettingsProvider globalSettings) {
this.globalSettings = globalSettings;
} }
public void setUsePrivateRepository(boolean usePrivateRepository) { public void setUsePrivateRepository(boolean usePrivateRepository) {
...@@ -420,7 +429,10 @@ public class Maven extends Builder { ...@@ -420,7 +429,10 @@ public class Maven extends Builder {
@Override @Override
public Builder newInstance(StaplerRequest req, JSONObject formData) throws FormException { public Builder newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return req.bindJSON(Maven.class,formData); Maven m = req.bindJSON(Maven.class,formData);
m.setSettings(GlobalMavenConfig.get().getSettingsProvider());
m.setGlobalSettings(GlobalMavenConfig.get().getGlobalSettingsProvider());
return m;
} }
} }
......
package jenkins.mvn;
import hudson.Extension;
import jenkins.model.GlobalConfiguration;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.StaplerRequest;
//as close as it gets to the global Maven Project configuration
@Extension(ordinal = 50)
public class GlobalMavenConfig extends GlobalConfiguration {
private SettingsProvider settingsProvider;
private GlobalSettingsProvider globalSettingsProvider;
public GlobalMavenConfig() {
load();
}
@Override
public boolean configure(StaplerRequest req, JSONObject json) throws FormException {
req.bindJSON(this, json);
return true;
}
public void setGlobalSettingsProvider(GlobalSettingsProvider globalSettingsProvider) {
this.globalSettingsProvider = globalSettingsProvider;
save();
}
public void setSettingsProvider(SettingsProvider settingsProvider) {
this.settingsProvider = settingsProvider;
save();
}
public GlobalSettingsProvider getGlobalSettingsProvider() {
return globalSettingsProvider != null ? globalSettingsProvider : new DefaultGlobalSettingsProvider();
}
public SettingsProvider getSettingsProvider() {
return settingsProvider != null ? settingsProvider : new DefaultSettingsProvider();
}
public static GlobalMavenConfig get() {
return GlobalConfiguration.all().get(GlobalMavenConfig.class);
}
}
package jenkins.mvn.GlobalMavenConfig;
def f = namespace(lib.FormTagLib)
f.section(title:_("Maven Configuration")) {
f.dropdownDescriptorSelector(title:_("Default settings provider"), field:"settingsProvider")
f.dropdownDescriptorSelector(title:_("Default global settings provider"), field:"globalSettingsProvider")
}
...@@ -94,6 +94,7 @@ import jenkins.model.ModelObjectWithChildren; ...@@ -94,6 +94,7 @@ import jenkins.model.ModelObjectWithChildren;
import jenkins.mvn.DefaultGlobalSettingsProvider; import jenkins.mvn.DefaultGlobalSettingsProvider;
import jenkins.mvn.DefaultSettingsProvider; import jenkins.mvn.DefaultSettingsProvider;
import jenkins.mvn.FilePathSettingsProvider; import jenkins.mvn.FilePathSettingsProvider;
import jenkins.mvn.GlobalMavenConfig;
import jenkins.mvn.GlobalSettingsProvider; import jenkins.mvn.GlobalSettingsProvider;
import jenkins.mvn.GlobalSettingsProviderDescriptor; import jenkins.mvn.GlobalSettingsProviderDescriptor;
import jenkins.mvn.SettingsProvider; import jenkins.mvn.SettingsProvider;
...@@ -284,12 +285,12 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod ...@@ -284,12 +285,12 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
/** /**
* @since 1.491 * @since 1.491
*/ */
private SettingsProvider settings = new DefaultSettingsProvider(); private SettingsProvider settings;
/** /**
* @since 1.491 * @since 1.491
*/ */
private GlobalSettingsProvider globalSettings = new DefaultGlobalSettingsProvider(); private GlobalSettingsProvider globalSettings;
/** /**
...@@ -650,14 +651,14 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod ...@@ -650,14 +651,14 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
* @since 1.481 * @since 1.481
*/ */
public SettingsProvider getSettings() { public SettingsProvider getSettings() {
return settings != null ? settings : new DefaultSettingsProvider(); return settings != null ? settings : GlobalMavenConfig.get().getSettingsProvider();
} }
/** /**
* @since 1.481 * @since 1.481
*/ */
public GlobalSettingsProvider getGlobalSettings() { public GlobalSettingsProvider getGlobalSettings() {
return globalSettings != null ? globalSettings : new DefaultGlobalSettingsProvider(); return globalSettings != null ? globalSettings : GlobalMavenConfig.get().getGlobalSettingsProvider();
} }
/** /**
...@@ -1260,7 +1261,10 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod ...@@ -1260,7 +1261,10 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
} }
public MavenModuleSet newInstance(ItemGroup parent, String name) { public MavenModuleSet newInstance(ItemGroup parent, String name) {
return new MavenModuleSet(parent,name); MavenModuleSet mms = new MavenModuleSet(parent,name);
mms.setSettings(GlobalMavenConfig.get().getSettingsProvider());
mms.setGlobalSettings(GlobalMavenConfig.get().getGlobalSettingsProvider());
return mms;
} }
public Maven.DescriptorImpl getMavenDescriptor() { public Maven.DescriptorImpl getMavenDescriptor() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册