Comment by
Robin Shen
[
24/Jan/13 03:24 AM
]
|
I was thinking about how it can be achieved in QB. A very brief thinking in my mind seems suggest to me that QB should allow a dynamically evaluated dependency set (instead of the "statically" defined one we have now). Each configuration will need to have information of "groupID + artifactID"(GA) and "groupID + artifactID + version" (GAV) exposed for dependency evaluation. For example, when project A is built, by inspecting the POM, we know that it depends on groupB:projB:1.0-SNAPSHOT. First we need to evaluate what is the "possible" dependent projects, which are all project with "groupB:projB". Update of source code will happen on the corresponding projects and the projects will return the whole GAV. Project A will only wait until the matching project (project B with groupB:projB:1.0-SNAPSHOT) finish its build.
Or, a similar but even simplier way: when project A is built, by inspecting the POM we know the set of maven dependencies it have, e.g. groupB:projB:1.0-SNAPSHOT. For each configuration built by Maven, we stored the last "GAV"s contained in that configuration. We simply make project A depends on configurations with matching GAVs of its dependencies, and wait until all dependent configuration finish building. Of course, once project B is built, we should also allow trigger build of all projects that depends on GAVs of project B. (Compared to previous suggest it may be not as smart in detecting version change but it will still work)
One more thing is to provide some "profile" or "maven space", so that dependencies are checked only for configurations assigned in the same "maven space".
Of course it is just something very very rough and need a lot of further polishing, but at least it looks like something fit with design of QB and is feasible.
|
Comment by
Robin Shen
[
19/Feb/13 01:47 PM
]
|
Refer to wiki for details of this feature:
http://wiki.pmease.com/display/QB50/Build+with+Maven
|
Comment by
IgorT
[
20/Feb/13 08:02 AM
]
|
Hi Robin. Just to be sure, will the QB be able to trace dependencies via parent pom.xml files as well? eg. one can only specify parent pom inside her application's pom.xml file and all the dependencies and their version may be living outside the application's pom, but in its parent's or parent's parent's pom.xml. Meaning, if you run {{mvn dependency:tree}} on your initial application pom.xml, maven will be able to pull and show all the dependencies, but if you only parse current pom.xml, it may not be enough. Thank you for your effort.
|
Comment by
Robin Shen
[
20/Feb/13 09:16 AM
]
|
QB runs command "mvn help:effective-pom" to analyze the output to get dependencies, so it can find dependencies defined in parent POMs.
|
Generated at Fri May 17 07:09:46 UTC 2024 using JIRA 189.