Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fyakm
jenkins
提交
f460e1e8
J
jenkins
项目概览
fyakm
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
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,发现更多精彩内容 >>
提交
f460e1e8
编写于
6月 13, 2013
作者:
B
Bernard Leach
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[JENKINS-18326] add maven site support for nested submodules
上级
bff177df
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
4 deletion
+43
-4
maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java
...c/main/java/hudson/maven/reporters/MavenSiteArchiver.java
+43
-4
未找到文件。
maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java
浏览文件 @
f460e1e8
...
...
@@ -33,6 +33,7 @@ import hudson.maven.MavenModuleSet;
import
hudson.maven.MavenModuleSetBuild
;
import
hudson.maven.MavenReporter
;
import
hudson.maven.MavenReporterDescriptor
;
import
hudson.maven.ModuleName
;
import
hudson.maven.MojoInfo
;
import
hudson.maven.MavenBuildProxy.BuildCallable
;
import
hudson.model.AbstractItem
;
...
...
@@ -41,6 +42,9 @@ import hudson.model.BuildListener;
import
hudson.model.DirectoryBrowserSupport
;
import
hudson.model.ProminentProjectAction
;
import
hudson.model.Result
;
import
org.apache.maven.model.DistributionManagement
;
import
org.apache.maven.model.Site
;
import
org.apache.maven.project.MavenProject
;
import
org.codehaus.plexus.component.configurator.ComponentConfigurationException
;
...
...
@@ -103,27 +107,62 @@ public class MavenSiteArchiver extends MavenReporter {
* @throws InterruptedException
*/
private
String
getModuleName
(
MavenBuildProxy
build
,
MavenProject
pom
)
throws
IOException
,
InterruptedException
{
String
moduleRoot
=
build
.
execute
(
new
BuildCallable
<
String
,
IOException
>()
{
Object
[]
moduleRoot
=
build
.
execute
(
new
BuildCallable
<
Object
[]
,
IOException
>()
{
private
static
final
long
serialVersionUID
=
1L
;
//@Override
public
String
call
(
MavenBuild
mavenBuild
)
throws
IOException
,
InterruptedException
{
@Override
public
Object
[]
call
(
MavenBuild
mavenBuild
)
throws
IOException
,
InterruptedException
{
MavenModuleSetBuild
moduleSetBuild
=
mavenBuild
.
getModuleSetBuild
();
if
(
moduleSetBuild
==
null
)
{
throw
new
IOException
(
"Parent build not found!"
);
}
return
moduleSetBuild
.
getModuleRoot
().
getRemote
();
MavenModuleSet
project
=
moduleSetBuild
.
getProject
();
MavenModule
rootModule
=
project
.
getRootModule
();
ModuleName
moduleName
=
rootModule
.
getModuleName
();
return
new
Object
[]
{
moduleSetBuild
.
getModuleRoot
().
getRemote
(),
moduleName
};
}
});
final
File
pomBaseDir
=
pom
.
getBasedir
();
final
File
remoteWorkspaceDir
=
new
File
(
moduleRoot
);
final
File
remoteWorkspaceDir
=
new
File
(
(
String
)
moduleRoot
[
0
]
);
if
(
pomBaseDir
.
equals
(
remoteWorkspaceDir
))
{
return
""
;
}
else
{
String
projectSite
=
getDistributionUrl
(
pom
);
if
(
projectSite
!=
null
)
{
String
parentSite
=
getRootDistributionUrl
(
pom
,
(
ModuleName
)
moduleRoot
[
1
]);
if
(
parentSite
!=
null
)
{
return
projectSite
.
substring
(
parentSite
.
length
()
+
1
,
projectSite
.
length
());
}
}
return
pom
.
getArtifactId
();
}
}
private
String
getRootDistributionUrl
(
MavenProject
pom
,
ModuleName
rootModuleName
)
{
MavenProject
parent
=
pom
.
getParent
();
while
(
parent
!=
null
)
{
ModuleName
parentModuleName
=
new
ModuleName
(
parent
.
getGroupId
(),
parent
.
getArtifactId
());
if
(
rootModuleName
.
equals
(
parentModuleName
))
{
String
parentSite
=
getDistributionUrl
(
parent
);
return
parentSite
;
}
parent
=
parent
.
getParent
();
}
return
null
;
}
private
String
getDistributionUrl
(
MavenProject
pom
)
{
final
DistributionManagement
distributionManagement
=
pom
.
getDistributionManagement
();
if
(
distributionManagement
!=
null
)
{
final
Site
site
=
distributionManagement
.
getSite
();
if
(
site
!=
null
)
{
return
site
.
getUrl
();
}
}
return
null
;
}
public
Collection
<?
extends
Action
>
getProjectActions
(
MavenModule
project
)
{
return
Collections
.
singleton
(
new
SiteAction
(
project
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录