Nic*_*las 8 hudson build parent pom.xml maven
我曾经和Hudson合作过我的项目,最近我不得不把它移到新的服务器上.
我配置它的方式完全相同(我可以告诉)但是当我尝试启动构建时,它失败了,我收到以下错误:
Démarré par l'utilisateur anonymous
Checking out http://[...]/trunk/MyProject/ear
A .classpath
A .project
A target
AU target/ear-1.0-SNAPSHOT.ear
A target/application.xml
A target/ear-1.0-SNAPSHOT
A target/ear-1.0-SNAPSHOT/META-INF
A target/ear-1.0-SNAPSHOT/META-INF/application.xml
AU target/ear-1.0-SNAPSHOT/web-1.0-SNAPSHOT.war
AU target/ear-1.0-SNAPSHOT/business-1.0-SNAPSHOT.jar
A pom.xml
A .settings
A .settings/org.eclipse.jdt.core.prefs
A .settings/org.maven.ide.eclipse.prefs
At revision 136
no change for http://[...]/trunk/MyProject/ear since the previous build
Found mavenVersion 3.0.2 from file jar:file:/usr/share/maven/apache-maven-3.0.2/lib/maven-core-3.0.2.jar!/META-INF/maven/org.apache.maven/maven-core/pom.properties
Parsing POMs
ERROR: Echec à la lecture des POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact com.rha:MyProject:pom:1.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 9, column 10
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:325)
at hudson.maven.MavenEmbedder.buildProjects(MavenEmbedder.java:360)
at hudson.maven.MavenEmbedder.readProjects(MavenEmbedder.java:330)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1148)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:991)
at hudson.FilePath.act(FilePath.java:756)
at hudson.FilePath.act(FilePath.java:738)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.parsePoms(MavenModuleSetBuild.java:698)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:531)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:420)
at hudson.model.Run.run(Run.java:1362)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:405)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:145)
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
到达Hudson"workspace"时的pom.xml文件如下所示:
[...]
<parent>
<groupId>com.rha</groupId>
<artifactId>MyProject</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
Run Code Online (Sandbox Code Playgroud)
[...]
<dependencies>
<dependency>
<groupId>com.rha</groupId>
<artifactId>business</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>com.rha</groupId>
<artifactId>web</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
[编辑]
其实我忘了一些重要的信息:
我的项目分为3个部分:
business(打包成.jar)web(打包成.war)ear(将.war和.jar打包成.ear)
我正在使用Subversion,在我的"trunk"文件夹下,我得到了一个"MyProject"文件夹,包括:
.project
.settings/
business/
ear/
pom.xml
src/
web/
Run Code Online (Sandbox Code Playgroud)
会发生什么:
在我的Hudson作业配置中,我填写了SVN字段"存储库URL":
HTTP:// [...] /主干/ MyProject的/耳
这是"MyProject"文件夹中的"pom.xml":
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
[...]
<modules>
<module>business</module>
<module>web</module>
<module>ear</module>
</modules>
[...]
Run Code Online (Sandbox Code Playgroud)
所以父"pom.xml"实际上位于我的SVN存储库"trunk/MyFolder"下的"../pom.xml".
但哈德森出于某种原因无法看到它(但就像我说的那样,它曾用于以前的服务器).
任何线索?
[/编辑]
我想这是一个新手的错误,我是Maven的初学者,但我无法弄清楚为什么它不再起作用了......
任何帮助将不胜感激 !
萨科
Rag*_*ram 16
relativePath(parent默认)../pom.xml.看起来它不存在于那里.您可以将其设置为空值,以便maven将其作为依赖项下载.
<relativePath/>
Run Code Online (Sandbox Code Playgroud)
此链接讨论了这一点.
[编辑:基于对问题的编辑]
Hudson只看到ear文件夹中的源代码.虽然父pom存在于SVN中,但Hudson无法使用它.缺少父母pom在Maven 2中是一个警告但在Maven 3中是严格的.
有两种方法可以解决这个问题.
一个是指定hudson,url http://[...]/trunk/MyProject/.然后,您可以选择构建所有模块,或者仍然选择pom.xml单独构建耳朵项目.
另一种是mvn install在hudson系统上手动运行,以便父pom一次部署,然后由hudson使用.但是,如果随后更改父pom,则不会更新.
| 归档时间: |
|
| 查看次数: |
50330 次 |
| 最近记录: |