Re: [CEDET-devel] project root function question
Brought to you by:
zappo
From: <jo...@ve...> - 2009-02-26 17:30:11
|
"Eric M. Ludlam" <er...@si...> writes: >>>> jo...@ve... seems to think that: >>I havent had time to digest your entire reply yet, but the original >>question remains unanswered. I'll try to formulate it better: >> >> >>;; BUG: in projects with a root pom and modules with poms residing in >>;; child directories of the root pom, "compile" sometimes build the >>;; root project rather than the child project. This is not what we >>;; want for maven. maybe its a feature for makefile projects? >> >>;;to reproduce: >>;; - use a hierarchical maven project: >>;;root/pom.xml >>;;root/A/pom.xml >>;;root/B/pom.xml >>;; - open root/A/pom.xml, and build with ede. it will build the right >>;;project, A >>;; - open root/pom.xml and build, it will build root/pom.xml correctly >>;; - open root/B/pom.xml and ede build. it will build root/pom.xml instead! >> >>;;project-compile-project seems to get the wrong directory to build >>;;because ede-compile-project seems to travel up through a project >>;;hierarchy and build the root project, rather than the current one. >> >>;;should ede-parent-project be made generic? > [ ... ] > > Hi, > > Are root/pom.xml, root/A/pom.xml and root/B/pom.xml independent, or > is there an intended hierarchy? > > Here is a short version of my previous answer. It is not a problem > with "compile", but problem mapping your directory structure into EDE, > and thus mapping buffers to projects. Well, it still seems like a bug, since the behavior isn't consistent. It currently depends on the order the projects where first built with ede. Otherwise, A and B would always be built separately, OR the root would always be built, right? > I'm not sure what your mapping intentions are, so I can't really > answer. I would like for A and B to be built independently of the root, and the root to be built separately. With maven the directory structure isn't so important. The root pom in this case happens to include "module" statements, which says when building root also build A and B, but root doesn't have to have any relation with A and B at all. A parent pom is something different than a parent project. It means project information will be inherited from the root. > > Also, are you looking for advice, or a patch? As this seems like > something useful that will eventually be made to work, I might > recommend putting what you have in ede-maven.el into CVS in cedet/ede > so we can more easily share it, but without the autoload cookie when > setting up ede-project-class-files. Add that when you like the way it > works. I will put it into CVS. ATM I would like advice rather than a patch because I wouldn't like to uphold your release work more than necessary :) > > Next, if the project you are working on is Open Source, let me know > where the CVS repository is. Otherwise a tar file with some example > pom files and simple Java code will help me understand what you are > requesting. I suspect we will want to look inside the pom files to > derive compile targets soon, so using a more complete demo project > will be good. The project I'm working on is proprietary, but I will find a suitable open source test case. AFAIK theres no way to look inside a pom file and determine the "goals" that can be used on. That is because the pom doesnt really say anything about what will be generated, its mostly a description of dependencies. The goals that are possible to execute are given by the maven binary itself, which in turn isnt trivial to find out, because of mavens plugin architecture. > Thanks > Eric -- Joakim Verona |