Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
70f457d9
J
jenkins
项目概览
xxadev
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
70f457d9
编写于
5月 05, 2013
作者:
O
Olivier Lamy
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #772 from imod/default-maven-settings
FIXES JENKINS-17723 - Default maven settings Good change !
上级
4e370843
ad286c51
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
155 addition
and
16 deletion
+155
-16
core/src/main/java/hudson/tasks/Maven.java
core/src/main/java/hudson/tasks/Maven.java
+27
-9
core/src/main/java/jenkins/mvn/GlobalMavenConfig.java
core/src/main/java/jenkins/mvn/GlobalMavenConfig.java
+47
-0
core/src/main/resources/hudson/tasks/Maven/config.jelly
core/src/main/resources/hudson/tasks/Maven/config.jelly
+3
-2
core/src/main/resources/jenkins/mvn/GlobalMavenConfig/config.groovy
...ain/resources/jenkins/mvn/GlobalMavenConfig/config.groovy
+8
-0
maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java
maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java
+9
-5
test/src/test/java/hudson/maven/MavenProjectTest.java
test/src/test/java/hudson/maven/MavenProjectTest.java
+28
-0
test/src/test/java/hudson/tasks/MavenTest.java
test/src/test/java/hudson/tasks/MavenTest.java
+33
-0
未找到文件。
core/src/main/java/hudson/tasks/Maven.java
浏览文件 @
70f457d9
...
...
@@ -38,8 +38,7 @@ import hudson.model.Computer;
import
hudson.model.EnvironmentSpecific
;
import
hudson.model.Node
;
import
jenkins.model.Jenkins
;
import
jenkins.mvn.DefaultGlobalSettingsProvider
;
import
jenkins.mvn.DefaultSettingsProvider
;
import
jenkins.mvn.GlobalMavenConfig
;
import
jenkins.mvn.GlobalSettingsProvider
;
import
jenkins.mvn.SettingsProvider
;
import
hudson.model.TaskListener
;
...
...
@@ -129,13 +128,13 @@ public class Maven extends Builder {
* Provides access to the settings.xml to be used for a build.
* @since 1.491
*/
private
SettingsProvider
settings
=
new
DefaultSettingsProvider
()
;
private
SettingsProvider
settings
;
/**
* Provides access to the global settings.xml to be used for a build.
* @since 1.491
*/
private
GlobalSettingsProvider
globalSettings
=
new
DefaultGlobalSettingsProvider
()
;
private
GlobalSettingsProvider
globalSettings
;
private
final
static
String
MAVEN_1_INSTALLATION_COMMON_FILE
=
"bin/maven"
;
private
final
static
String
MAVEN_2_INSTALLATION_COMMON_FILE
=
"bin/mvn"
;
...
...
@@ -163,8 +162,8 @@ public class Maven extends Builder {
this
.
properties
=
Util
.
fixEmptyAndTrim
(
properties
);
this
.
jvmOptions
=
Util
.
fixEmptyAndTrim
(
jvmOptions
);
this
.
usePrivateRepository
=
usePrivateRepository
;
this
.
settings
=
settings
!=
null
?
settings
:
new
Defaul
tSettingsProvider
();
this
.
globalSettings
=
globalSettings
!=
null
?
globalSettings
:
new
Defaul
tGlobalSettingsProvider
();
this
.
settings
=
settings
!=
null
?
settings
:
GlobalMavenConfig
.
get
().
ge
tSettingsProvider
();
this
.
globalSettings
=
globalSettings
!=
null
?
globalSettings
:
GlobalMavenConfig
.
get
().
ge
tGlobalSettingsProvider
();
}
public
String
getTargets
()
{
...
...
@@ -175,14 +174,22 @@ public class Maven extends Builder {
* @since 1.491
*/
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
*/
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
)
{
...
...
@@ -398,6 +405,14 @@ public class Maven extends Builder {
public
String
getDisplayName
()
{
return
Messages
.
Maven_DisplayName
();
}
public
GlobalSettingsProvider
getDefaultGlobalSettingsProvider
()
{
return
GlobalMavenConfig
.
get
().
getGlobalSettingsProvider
();
}
public
SettingsProvider
getDefaultSettingsProvider
()
{
return
GlobalMavenConfig
.
get
().
getSettingsProvider
();
}
public
MavenInstallation
[]
getInstallations
()
{
return
installations
;
...
...
@@ -420,7 +435,10 @@ public class Maven extends Builder {
@Override
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
;
}
}
...
...
core/src/main/java/jenkins/mvn/GlobalMavenConfig.java
0 → 100644
浏览文件 @
70f457d9
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
);
}
}
core/src/main/resources/hudson/tasks/Maven/config.jelly
浏览文件 @
70f457d9
...
...
@@ -50,7 +50,8 @@ THE SOFTWARE.
<f:entry field="usePrivateRepository" title="${%Use private Maven repository}" help="/plugin/maven-plugin/private-repository.html">
<f:checkbox checked="${it.usesPrivateRepository()}" />
</f:entry>
<f:dropdownDescriptorSelector title="${%Settings file}" descriptors="${descriptor.settingsProviders}" field="settings"/>
<f:dropdownDescriptorSelector title="${%Settings file}" field="settings" default="${descriptor.defaultSettingsProvider}"/>
<!--
<f:entry help="/help/tasks/maven/maven-settings.html">
...
...
@@ -58,6 +59,6 @@ THE SOFTWARE.
<f:entry help="/help/tasks/maven/maven-settings.html">
</f:entry>
-->
<f:dropdownDescriptorSelector title="${%Global Settings file}" field="globalSettings" descriptors="${descriptor.globalSettingsProviders}"/>
<f:dropdownDescriptorSelector title="${%Global Settings file}" field="globalSettings" default="${descriptor.defaultGlobalSettingsProvider}"/>
</f:advanced>
</j:jelly>
\ No newline at end of file
core/src/main/resources/jenkins/mvn/GlobalMavenConfig/config.groovy
0 → 100644
浏览文件 @
70f457d9
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"
)
}
maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java
浏览文件 @
70f457d9
...
...
@@ -94,6 +94,7 @@ import jenkins.model.ModelObjectWithChildren;
import
jenkins.mvn.DefaultGlobalSettingsProvider
;
import
jenkins.mvn.DefaultSettingsProvider
;
import
jenkins.mvn.FilePathSettingsProvider
;
import
jenkins.mvn.GlobalMavenConfig
;
import
jenkins.mvn.GlobalSettingsProvider
;
import
jenkins.mvn.GlobalSettingsProviderDescriptor
;
import
jenkins.mvn.SettingsProvider
;
...
...
@@ -284,12 +285,12 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
/**
* @since 1.491
*/
private
SettingsProvider
settings
=
new
DefaultSettingsProvider
()
;
private
SettingsProvider
settings
;
/**
* @since 1.491
*/
private
GlobalSettingsProvider
globalSettings
=
new
DefaultGlobalSettingsProvider
()
;
private
GlobalSettingsProvider
globalSettings
;
/**
...
...
@@ -650,14 +651,14 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
* @since 1.481
*/
public
SettingsProvider
getSettings
()
{
return
settings
!=
null
?
settings
:
new
Defaul
tSettingsProvider
();
return
settings
!=
null
?
settings
:
GlobalMavenConfig
.
get
().
ge
tSettingsProvider
();
}
/**
* @since 1.481
*/
public
GlobalSettingsProvider
getGlobalSettings
()
{
return
globalSettings
!=
null
?
globalSettings
:
new
Defaul
tGlobalSettingsProvider
();
return
globalSettings
!=
null
?
globalSettings
:
GlobalMavenConfig
.
get
().
ge
tGlobalSettingsProvider
();
}
/**
...
...
@@ -1260,7 +1261,10 @@ public class MavenModuleSet extends AbstractMavenProject<MavenModuleSet,MavenMod
}
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
()
{
...
...
test/src/test/java/hudson/maven/MavenProjectTest.java
浏览文件 @
70f457d9
...
...
@@ -33,6 +33,11 @@ import hudson.tasks.Shell;
import
java.io.File
;
import
jenkins.model.Jenkins
;
import
jenkins.mvn.DefaultGlobalSettingsProvider
;
import
jenkins.mvn.DefaultSettingsProvider
;
import
jenkins.mvn.FilePathGlobalSettingsProvider
;
import
jenkins.mvn.FilePathSettingsProvider
;
import
jenkins.mvn.GlobalMavenConfig
;
import
org.junit.Assert
;
import
org.jvnet.hudson.test.Bug
;
...
...
@@ -209,4 +214,27 @@ public class MavenProjectTest extends HudsonTestCase {
assertEquals
(
r
,
m
.
getRunPostStepsIfResult
());
}
}
public
void
testDefaultSettingsProvider
()
throws
Exception
{
{
MavenModuleSet
m
=
createMavenProject
();
assertNotNull
(
m
);
assertEquals
(
DefaultSettingsProvider
.
class
,
m
.
getSettings
().
getClass
());
assertEquals
(
DefaultGlobalSettingsProvider
.
class
,
m
.
getGlobalSettings
().
getClass
());
}
{
GlobalMavenConfig
globalMavenConfig
=
GlobalMavenConfig
.
get
();
assertNotNull
(
"No global Maven Config available"
,
globalMavenConfig
);
globalMavenConfig
.
setSettingsProvider
(
new
FilePathSettingsProvider
(
"/tmp/settigns.xml"
));
globalMavenConfig
.
setGlobalSettingsProvider
(
new
FilePathGlobalSettingsProvider
(
"/tmp/global-settigns.xml"
));
MavenModuleSet
m
=
createMavenProject
();
assertEquals
(
FilePathSettingsProvider
.
class
,
m
.
getSettings
().
getClass
());
assertEquals
(
"/tmp/settigns.xml"
,
((
FilePathSettingsProvider
)
m
.
getSettings
()).
getPath
());
assertEquals
(
"/tmp/global-settigns.xml"
,
((
FilePathGlobalSettingsProvider
)
m
.
getGlobalSettings
()).
getPath
());
}
}
}
test/src/test/java/hudson/tasks/MavenTest.java
浏览文件 @
70f457d9
...
...
@@ -26,6 +26,11 @@ package hudson.tasks;
import
hudson.model.Build
;
import
hudson.model.FreeStyleProject
;
import
jenkins.model.Jenkins
;
import
jenkins.mvn.DefaultGlobalSettingsProvider
;
import
jenkins.mvn.DefaultSettingsProvider
;
import
jenkins.mvn.FilePathGlobalSettingsProvider
;
import
jenkins.mvn.FilePathSettingsProvider
;
import
jenkins.mvn.GlobalMavenConfig
;
import
hudson.model.JDK
;
import
hudson.model.ParametersDefinitionProperty
;
import
hudson.model.Result
;
...
...
@@ -47,6 +52,7 @@ import java.util.Collections;
import
junit.framework.Assert
;
import
org.apache.maven.settings.building.FileSettingsSource
;
import
org.jvnet.hudson.test.HudsonTestCase
;
import
com.gargoylesoftware.htmlunit.html.HtmlForm
;
...
...
@@ -196,4 +202,31 @@ public class MavenTest extends HudsonTestCase {
System
.
out
.
println
(
buildLog
);
assertFalse
(
buildLog
.
contains
(
"-Dpassword=12345"
));
}
public
void
testDefaultSettingsProvider
()
throws
Exception
{
{
FreeStyleProject
p
=
createFreeStyleProject
();
p
.
getBuildersList
().
add
(
new
Maven
(
"a"
,
null
,
"a.pom"
,
"c=d"
,
"-e"
,
true
));
Maven
m
=
p
.
getBuildersList
().
get
(
Maven
.
class
);
assertNotNull
(
m
);
assertEquals
(
DefaultSettingsProvider
.
class
,
m
.
getSettings
().
getClass
());
assertEquals
(
DefaultGlobalSettingsProvider
.
class
,
m
.
getGlobalSettings
().
getClass
());
}
{
GlobalMavenConfig
globalMavenConfig
=
GlobalMavenConfig
.
get
();
assertNotNull
(
"No global Maven Config available"
,
globalMavenConfig
);
globalMavenConfig
.
setSettingsProvider
(
new
FilePathSettingsProvider
(
"/tmp/settigns.xml"
));
globalMavenConfig
.
setGlobalSettingsProvider
(
new
FilePathGlobalSettingsProvider
(
"/tmp/global-settigns.xml"
));
FreeStyleProject
p
=
createFreeStyleProject
();
p
.
getBuildersList
().
add
(
new
Maven
(
"b"
,
null
,
"b.pom"
,
"c=d"
,
"-e"
,
true
));
Maven
m
=
p
.
getBuildersList
().
get
(
Maven
.
class
);
assertEquals
(
FilePathSettingsProvider
.
class
,
m
.
getSettings
().
getClass
());
assertEquals
(
"/tmp/settigns.xml"
,
((
FilePathSettingsProvider
)
m
.
getSettings
()).
getPath
());
assertEquals
(
"/tmp/global-settigns.xml"
,
((
FilePathGlobalSettingsProvider
)
m
.
getGlobalSettings
()).
getPath
());
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录