Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
45f5cf21
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
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,发现更多精彩内容 >>
提交
45f5cf21
编写于
7月 22, 2013
作者:
O
Olivier Lamy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add support for maven spy for maven 3.1.0 only
上级
c4e7b58a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
136 addition
and
22 deletion
+136
-22
maven-plugin/src/main/java/hudson/maven/Maven3Builder.java
maven-plugin/src/main/java/hudson/maven/Maven3Builder.java
+123
-18
maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java
...lugin/src/main/java/hudson/maven/MavenModuleSetBuild.java
+11
-3
maven-plugin/src/main/java/hudson/maven/MavenUtil.java
maven-plugin/src/main/java/hudson/maven/MavenUtil.java
+2
-1
未找到文件。
maven-plugin/src/main/java/hudson/maven/Maven3Builder.java
浏览文件 @
45f5cf21
...
...
@@ -31,6 +31,7 @@ import hudson.remoting.Channel;
import
hudson.remoting.DelegatingCallable
;
import
hudson.util.IOException2
;
import
org.apache.maven.cli.event.ExecutionEventLogger
;
import
org.apache.maven.eventspy.EventSpy
;
import
org.apache.maven.execution.AbstractExecutionListener
;
import
org.apache.maven.execution.ExecutionEvent
;
import
org.apache.maven.execution.ExecutionListener
;
...
...
@@ -47,6 +48,7 @@ import java.lang.reflect.InvocationTargetException;
import
java.lang.reflect.Method
;
import
java.text.NumberFormat
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -73,35 +75,49 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
HudsonMavenExecutionResult
mavenExecutionResult
;
Class
<?>
maven3MainClass
;
Class
<?>
maven3LauncherClass
;
protected
Maven3Builder
(
BuildListener
listener
,
Map
<
ModuleName
,
ProxyImpl2
>
proxies
,
Collection
<
MavenModule
>
modules
,
List
<
String
>
goals
,
Map
<
String
,
String
>
systemProps
,
MavenBuildInformation
mavenBuildInformation
,
Class
<?>
maven3MainClass
,
Class
<?>
maven3LauncherClass
)
{
super
(
listener
,
modules
,
goals
,
systemProps
);
this
.
sourceProxies
.
putAll
(
proxies
);
boolean
supportEventSpy
=
false
;
protected
Maven3Builder
(
Maven3BuilderRequest
maven3BuilderRequest
)
{
super
(
maven3BuilderRequest
.
listener
,
maven3BuilderRequest
.
modules
,
maven3BuilderRequest
.
goals
,
maven3BuilderRequest
.
systemProps
);
this
.
sourceProxies
.
putAll
(
maven3BuilderRequest
.
proxies
);
this
.
proxies
=
new
HashMap
<
ModuleName
,
FilterImpl
>();
for
(
Entry
<
ModuleName
,
ProxyImpl2
>
e
:
this
.
sourceProxies
.
entrySet
())
{
this
.
proxies
.
put
(
e
.
getKey
(),
new
FilterImpl
(
e
.
getValue
(),
mavenBuildInformation
));
this
.
proxies
.
put
(
e
.
getKey
(),
new
FilterImpl
(
e
.
getValue
(),
maven
3BuilderRequest
.
maven
BuildInformation
));
}
this
.
maven3MainClass
=
maven3MainClass
;
this
.
maven3LauncherClass
=
maven3LauncherClass
;
}
this
.
maven3LauncherClass
=
maven3BuilderRequest
.
maven3LauncherClass
;
this
.
maven3MainClass
=
maven3BuilderRequest
.
maven3MainClass
;
this
.
supportEventSpy
=
maven3BuilderRequest
.
supportEventSpy
;
}
protected
static
class
Maven3BuilderRequest
{
BuildListener
listener
;
Map
<
ModuleName
,
ProxyImpl2
>
proxies
;
Collection
<
MavenModule
>
modules
;
List
<
String
>
goals
;
Map
<
String
,
String
>
systemProps
;
MavenBuildInformation
mavenBuildInformation
;
Class
<?>
maven3MainClass
;
Class
<?>
maven3LauncherClass
;
boolean
supportEventSpy
=
false
;
}
public
Result
call
()
throws
IOException
{
try
{
initializeAsynchronousExecutions
();
MavenExecutionListener
mavenExecutionListener
=
new
MavenExecutionListener
(
this
);
Method
setMavenExecutionListenerMethod
=
maven3LauncherClass
.
getMethod
(
"setMavenExecutionListener"
,
ExecutionListener
.
class
);
MavenExecutionListener
mavenExecutionListener
=
supportEventSpy
?
new
JenkinsEventSpy
(
this
)
:
new
MavenExecutionListener
(
this
);
if
(
supportEventSpy
)
{
Method
setEventSpiesMethod
=
maven3LauncherClass
.
getMethod
(
"setEventSpies"
,
List
.
class
);
setEventSpiesMethod
.
invoke
(
null
,
Collections
.
singletonList
(
mavenExecutionListener
)
);
setMavenExecutionListenerMethod
.
invoke
(
null
,
mavenExecutionListener
);
}
else
{
Method
setMavenExecutionListenerMethod
=
maven3LauncherClass
.
getMethod
(
"setMavenExecutionListener"
,
ExecutionListener
.
class
);
//Maven3Launcher.setMavenExecutionListener(
mavenExecutionListener );
setMavenExecutionListenerMethod
.
invoke
(
null
,
mavenExecutionListener
);
}
markAsSuccess
=
false
;
registerSystemProperties
();
...
...
@@ -187,7 +203,96 @@ public class Maven3Builder extends AbstractMavenBuilder implements DelegatingCal
}
}
private
static
final
class
MavenExecutionListener
extends
AbstractExecutionListener
implements
Serializable
,
ExecutionListener
{
private
static
final
class
JenkinsEventSpy
extends
MavenExecutionListener
implements
EventSpy
,
Serializable
{
private
static
final
long
serialVersionUID
=
4942789836756366117L
;
public
JenkinsEventSpy
(
AbstractMavenBuilder
maven3Builder
)
{
super
(
maven3Builder
);
}
@Override
public
void
init
(
Context
context
)
throws
Exception
{
//no op
}
@Override
public
void
onEvent
(
Object
event
)
throws
Exception
{
if
(
event
instanceof
ExecutionEvent
){
ExecutionEvent
.
Type
eventType
=
(
(
ExecutionEvent
)
event
).
getType
();
switch
(
eventType
)
{
case
ProjectDiscoveryStarted:
super
.
projectDiscoveryStarted
(
(
ExecutionEvent
)
event
);
break
;
case
SessionStarted:
super
.
sessionStarted
(
(
ExecutionEvent
)
event
);
break
;
case
SessionEnded:
super
.
sessionEnded
(
(
ExecutionEvent
)
event
);
break
;
case
ProjectSkipped:
super
.
projectSkipped
(
(
ExecutionEvent
)
event
);
break
;
case
ProjectStarted:
super
.
projectStarted
(
(
ExecutionEvent
)
event
);
break
;
case
ProjectSucceeded:
super
.
projectSucceeded
(
(
ExecutionEvent
)
event
);
break
;
case
ProjectFailed:
super
.
projectFailed
(
(
ExecutionEvent
)
event
);
break
;
case
MojoSkipped:
super
.
mojoSkipped
(
(
ExecutionEvent
)
event
);
break
;
case
MojoStarted:
super
.
mojoStarted
(
(
ExecutionEvent
)
event
);
break
;
case
MojoSucceeded:
super
.
mojoSucceeded
(
(
ExecutionEvent
)
event
);
break
;
case
MojoFailed:
super
.
mojoFailed
(
(
ExecutionEvent
)
event
);
break
;
case
ForkStarted:
super
.
forkedProjectStarted
(
(
ExecutionEvent
)
event
);
break
;
case
ForkSucceeded:
super
.
forkSucceeded
(
(
ExecutionEvent
)
event
);
break
;
case
ForkFailed:
super
.
forkFailed
(
(
ExecutionEvent
)
event
);
break
;
case
ForkedProjectStarted:
super
.
forkedProjectStarted
(
(
ExecutionEvent
)
event
);
break
;
case
ForkedProjectSucceeded:
super
.
forkedProjectSucceeded
(
(
ExecutionEvent
)
event
);
break
;
case
ForkedProjectFailed:
super
.
forkFailed
(
(
ExecutionEvent
)
event
);
break
;
default
:
LOGGER
.
fine
(
"event not managed"
);
}
}
}
@Override
public
void
close
()
throws
Exception
{
//no op
}
}
private
static
class
MavenExecutionListener
extends
AbstractExecutionListener
implements
Serializable
,
ExecutionListener
{
private
static
final
long
serialVersionUID
=
4942789836756366116L
;
...
...
maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java
浏览文件 @
45f5cf21
...
...
@@ -778,9 +778,17 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
final
AbstractMavenBuilder
builder
;
if
(
maven3orLater
)
{
builder
=
new
Maven3Builder
(
slistener
,
proxies
,
project
.
sortedActiveModules
,
margs
.
toList
(),
envVars
,
mavenBuildInformation
,
maven3MainClass
,
maven3LauncherClass
);
Maven3Builder
.
Maven3BuilderRequest
maven3BuilderRequest
=
new
Maven3Builder
.
Maven3BuilderRequest
();
maven3BuilderRequest
.
listener
=
slistener
;
maven3BuilderRequest
.
proxies
=
proxies
;
maven3BuilderRequest
.
modules
=
project
.
sortedActiveModules
;
maven3BuilderRequest
.
goals
=
margs
.
toList
();
maven3BuilderRequest
.
systemProps
=
envVars
;
maven3BuilderRequest
.
mavenBuildInformation
=
mavenBuildInformation
;
maven3BuilderRequest
.
maven3MainClass
=
maven3MainClass
;
maven3BuilderRequest
.
maven3LauncherClass
=
maven3LauncherClass
;
maven3BuilderRequest
.
supportEventSpy
=
MavenUtil
.
supportEventSpy
(
mavenVersion
);
builder
=
new
Maven3Builder
(
maven3BuilderRequest
);
}
else
{
builder
=
new
Maven2Builder
(
slistener
,
proxies
,
project
.
sortedActiveModules
,
margs
.
toList
(),
envVars
,
mavenBuildInformation
);
...
...
maven-plugin/src/main/java/hudson/maven/MavenUtil.java
浏览文件 @
45f5cf21
...
...
@@ -305,6 +305,7 @@ public class MavenUtil {
/**
* support of {@link org.apache.maven.eventspy.EventSpy} only since 3.0.2
* due to the current implementation will be supported only for maven 3.1.0
* @param mavenVersion
* @return
*/
...
...
@@ -313,7 +314,7 @@ public class MavenUtil {
if
(
StringUtils
.
isBlank
(
mavenVersion
))
{
return
false
;
}
return
new
ComparableVersion
(
mavenVersion
).
compareTo
(
new
ComparableVersion
(
"3.
0.2
"
)
)
>=
0
;
return
new
ComparableVersion
(
mavenVersion
).
compareTo
(
new
ComparableVersion
(
"3.
1.0
"
)
)
>=
0
;
}
public
enum
MavenVersion
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录