Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[gmf-dev] GMFT Build Problems on Hudson -- resolved now

Hello, 

We experienced some weird problems on Hudson yesterday, so I decided to write down the issues and solutions we have found. 

Yesterday for a couple of builds in a row the Hudson build failed very early with the error similar to this one: 

[INFO] Parent project for GMF Tooling build .............. FAILURE [1.798s]
....<skipped> 
[INFO] o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s)
[INFO] o.h.m.e.h.MavenExecutionResultHandler - [1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project org.eclipse.gmf.tests: Could not resolve dependencies for project org.eclipse.gmf-tooling.tests:org.eclipse.gmf.tests:eclipse-test-plugin:2.1.0-SNAPSHOT: Could not find artifact org.eclipse.gmf-tooling.plugins:org.eclipse.gmf.xpand.qvtlibrary:jar:1.1.1-SNAPSHOT
[DEBUG] Closing connection to remote
[ERROR] Failed to execute goal on project org.eclipse.gmf.tests: Could not resolve dependencies for project org.eclipse.gmf-tooling.tests:org.eclipse.gmf.tests:eclipse-test-plugin:2.1.0-SNAPSHOT: Could not find artifact org.eclipse.gmf-tooling.plugins:org.eclipse.gmf.xpand.qvtlibrary:jar:1.1.1-SNAPSHOT -> [Help 1]

The problem was kinda mysterious, because at the same time the local build was working well. 

With help from Mickael Istria we have identified that the problems like this are related to the javadoc maven plugin which works against the jars only. 
It means that full build may be successful ONLY if there was partial build (the one without the javadocs generated, "-P !javadoc" option for Maven) was successful at the same reactor. 

This partial build does not need tests (they will be executed later at the full build), so the GMFT Releng Wiki [1] suggest to run it also with "-Dmaven.test.skip=true" option.

Important additions we have found yesterday: 
  • As changing the version of any plugin/feature requires changing of the maven artifact version, the same partial build MUST be executed after every version change 
  • As Hudson uses the number of slaves, it is NOT normally guaranteed that your partial build is executed at the same slave as a full build. There are no shared repository at Hudson, so the Full Build may still fail until you will be lucky enough to be scheduled to the same slave as a partial build.
  • To overcome the latter problem and don't play roulette with slaves, you may restrict the set of available locations to build - search for "Restrict where this project can be run" at the configuration page. 
[1] http://wiki.eclipse.org/Graphical_Modeling_Framework/Contributors_Area#Build_locally

Regards, 
--

Michael "Borlander" Golubev
Eclipse Committer (GMF, UML2Tools)
at Montages Think Tank, 
Prague, Czech Republic
1165/1 Dvorecka, 14700, Prague-4 Podoli

tek: +420 602 483 463



Back to the top