| Summary: | Be able to specify the jdt.core used for compiling - from non "public" repository | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | David Williams <david_williams> |
| Component: | Releng | Assignee: | David Williams <david_williams> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | daniel_megert, david_williams, igor, jan.sievers, pwebster, thanh.ha |
| Version: | 3.8 | ||
| Target Milestone: | 4.3 M5 | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
| Bug Depends on: | 375554, 397850 | ||
| Bug Blocks: | 372792 | ||
|
Description
David Williams
*** Bug 397854 has been marked as a duplicate of this bug. *** tycho allows pluging the compiler in, but it must exist at visible maven co-ordinates somewhere. We need to place the .jar and some .pom in a location where it can be consumed. 1) in a location on the file system, a semi-permanent build location so we can use file:// 2) in a semi-permanent location in our /shared/eclipse so we can use http:// ... then anybody can use maven to build our intermediate. 3) somehow put it in maven.eclipse.org so that anybody can use mavne to build our intermediate builds. (In reply to comment #2) > tycho allows pluging the compiler in, but it must exist at visible maven > co-ordinates somewhere. > > We need to place the .jar and some .pom in a location where it can be > consumed. > > 1) in a location on the file system, a semi-permanent build location so we > can use file:// > > 2) in a semi-permanent location in our /shared/eclipse so we can use http:// > ... then anybody can use maven to build our intermediate. > > 3) somehow put it in maven.eclipse.org so that anybody can use mavne to > build our intermediate builds. please avoid any local file:// /not publicly visible URLs which make CBI build non-portable. The benefit of anyone being able to build eclipse anywhere would be lost. another option would be to mvn deploy to a file:// URL and copy the resulting maven repo and serve it from a publicly visible but not "officially released/advertised" place on download.eclipse.org. Ideally this should just be on maven.eclipse.org though. Igor had some specific steps in bug 375554 comment #11 : Here is what I recommend you do. * Setup a hosted maven repository. This does not have to be anything fancy, a stable location somewhere on download.eclipse.org is sufficient. For example, I use technology/m2e/maven to host CBI signing plugin. * Deploy jdt.core version that you need to use to the hosted repository you setup using file:// protocol. See exact command below. * Add new <pluginRepository> element to CBI parent pom.xml with http:// URL of the hosted repository * Add new <pluginManagement> plugins/plugin element with configuration similar to comment #1 to CBI parent pom.xml file. JDTVERSION=3.9.0.v20121208-144805 mvn deploy:deploy-file -Durl=file:///tmp/cbi-jdt \ -DgroupId=org.eclipse.cbi.tycho \ -DartifactId=org.eclipse.jdt.core \ -Dversion=${JDTVERSION} \ -Dfile=org.eclipse.jdt.core_${JDTVERSION}.jar \ -Dsources=org.eclipse.jdt.core.source_${JDTVERSION}.jar I completely agree with comment #3 -- do not use file:// URLs in pom.xml files, use publicly accessible http:// or https:// URLs. Thanks all for such constructive tips and reminders. I plan to make this change (at least in master, to start, to try it out) and thought I'd comment here that I'd like the URL to point to "build machine", it'd be something like http://build.eclipse.org/eclipse/cbi-jdt so that way it is more obvious it is not a "released" version ... could/would eventually perhaps disappear. I know that's not "normal" for the maven culture but hope its acceptable for this kind of case. Also, rather than a groupId=org.eclipse.cbi.tycho, I assume groupId=org.eclipse.jdt would be slightly more correct? Thanks again, I've made a guess ... following the existing examples ... of how the parent pom should be changed to get this "build.eclipse.org" repo: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=dca74e84a1431e0b74eabf1c33873262f47dd1f1 The only thing I think is that you have to use http: instead of https: ... build.eclipse.org won't serve https up. PW I mistakenly put "https" in the first version, should have been "http". http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=bc2d317b3b8299ec0d64f3a63751a5a94275f3c8 jinks :) I've put this version of the compiler in all three streams, since that's what we are doing in our current PDE based builds. G o o d l u c k ! :) (In reply to comment #7) > I've made a guess ... following the existing examples ... of how the parent > pom should be changed to get this "build.eclipse.org" repo: > > http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/ > commit/?id=dca74e84a1431e0b74eabf1c33873262f47dd1f1 This change breaks the build for me. I don't think putting the repository in the <pluginRepositories> section is correct. If I'm not wrong I think maven calculates the dependencies from the <repositories> section. Unfortunately I haven't been able to get this to work either. I moved the section to the <repositories> section as follows: <repository> <id>cbi-jdt</id> <url>${cbi-jdt-repo.url}</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> http://build.eclipse.org/eclipse/cbi-jdt/ looks like a maven repo to me. However it doesn't look like maven's using this additional repository to resolve dependencies: [INFO] Adding repository http://download.eclipse.org/tools/orbit/downloads/drops/S20121207152029/repository [INFO] Adding repository http://download.eclipse.org/tools/orbit/downloads/drops/S20121207152029/repository [INFO] Adding repository http://download.eclipse.org/rt/ecf/3.5.6/site.p2 [INFO] Adding repository http://download.eclipse.org/rt/ecf/3.5.6/site.p2 [INFO] Adding repository http://www.eclipse.org/external/jetty/updates/jetty-bundles-8.x/8.1.3.v20120522 [INFO] Adding repository http://www.eclipse.org/external/jetty/updates/jetty-bundles-8.x/8.1.3.v20120522 [INFO] Fetching p2.index from http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones/ (0B of 99B at 0B/s) [INFO] Fetching p2.index from http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones/ (134B of 99B at 0B/s) [INFO] Adding repository http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones [INFO] Fetching p2.index from http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones/ (0B of 99B at 0B/s) [INFO] Fetching p2.index from http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones/ (134B of 99B at 0B/s) [INFO] 1 operation remaining. [INFO] Adding repository http://download.eclipse.org/modeling/emf/emf/updates/2.9milestones [INFO] Adding repository http://download.eclipse.org/egit/updates [INFO] Adding repository http://download.eclipse.org/egit/updates [INFO] Adding repository http://download.eclipse.org/tools/ajdt/aspectj/update [INFO] Adding repository http://download.eclipse.org/tools/ajdt/aspectj/update [INFO] Resolving dependencies of MavenProject: eclipse.platform.ua:org.eclipse.help.webapp:3.6.200-SNAPSHOT @ /home/user/Downloads/eclipse2/eclipse.platform.releng.aggregator/eclipse.platform.ua/org.eclipse.help.webapp/pom.xml Jan, is there any additional settings we need to add to make maven use this repo? I thought it had to be in the pluginRepositories section in order for maven to pick it up for use by tycho? PW (In reply to comment #12) > I thought it had to be in the pluginRepositories section in order for maven > to pick it up for use by tycho? i.e. the tycho repo is in pluginRepositories section, so it makes sense this would as well. What if you leave it there, but mark it as releases/enable = true PW (In reply to comment #13) > (In reply to comment #12) > > I thought it had to be in the pluginRepositories section in order for maven > > to pick it up for use by tycho? > > i.e. the tycho repo is in pluginRepositories section, so it makes sense this > would as well. What if you leave it there, but mark it as releases/enable = > true > > PW That was it! I pushed the change into R3_8_maintenance, R4_2_maintenance, and master. http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=f4055fecee1bfb16902d3a6cf6af291f673001c3 I think it's just the convention: where anything without SNAPSHOT counts as a release. In the tycho repo above our jdt repo, we only want to consider SNAPSHOTs from it as any released versions of tycho would come from maven central. PW mass change to 'verified', as these bugs are either routine or obviously fixed build breaks. |