| Summary: | Corrupt maven repo on build.eclipse.org | ||
|---|---|---|---|
| Product: | Community | Reporter: | Chris Aniszczyk <caniszczyk> |
| Component: | CI-Jenkins | Assignee: | CI Admin Inbox <ci.admin-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | denis.roy, d_a_carver, matthias.sohn, nboldt |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Chris Aniszczyk
A work around for you for now, is to have your builds use Local repositories that are isolated to the particular job. You can do this by checking the use Local Repository option in your jobs configuration. The only down side to this is that your workspace will use more diskspace as maven downloads the internet. It doesn't work for me because I need to use the input of the JGit build as part of the EGit build. I'd have to modify the EGit build a bit to make this work... (In reply to comment #2) > It doesn't work for me because I need to use the input of the JGit build as > part of the EGit build. I'd have to modify the EGit build a bit to make this > work... Correct, you would need to add the jGit repo as one of the repositories in your eGit POM. This recommendation comes directly from the Sonatype blog: http://www.sonatype.com/people/2009/01/maven-continuous-integration-best-practices/ (In reply to comment #0) > We are having trouble building EGit on build.eclipse.org due to a corrupt > jar... > > /opt/users/hudsonbuild/.m2/repository/p2/osgi/bundle/org.eclipse.core.expressions/3.4.200.v20100222/org.eclipse.core.expressions-3.4.200.v20100222.jar > > I don't have permissions to delete this which isn't good. How can we ensure > that we can clean up the local maven repo on build.eclipse.org so this doesn't > happen again? How about using `mvn dependency:purge-local-repository` to purge it (and everything else, I suspect)? http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html Should we have a nightly repo purge job? Isolation of the repos and periodic cleaning of the repos is probably going to be the best thing long term. Otherwise you have no idea what is getting mixed in there and what some other job adds could affect your job. If every component has its own m2 repo (eg., using -Dmaven.repo.local=/opt/users/hudsonbuild/.hudson/jobs/egit/workspace/m2_repository), then provided there's a URL for that repo (eg., https://build.eclipse.org/hudson/job/egit/ws/m2_repository/), your downstream build's parent pom could include something like this: <pluginRepository> <id>tycho</id> <url>http://repository.sonatype.org/content/repositories/snapshots/ </url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> Alternatively, if you publish to a p2 repo, then use: <repository> <id>swtbot-helios</id> <url>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site </url> <layout>p2</layout> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> (In reply to comment #6) > If every component has its own m2 repo (eg., using > -Dmaven.repo.local=/opt/users/hudsonbuild/.hudson/jobs/egit/workspace/m2_repository), If you use the job configuration option for local repo, by default it puts it in the workspace/.repository directory. Then could use the Archive Artifacts option to make a stable reference to it. we are using local maven repos for jgit and egit builds since a long time now, I think we can close this bug ... Closing as per previous comment. |