You can miss a dep, but there's an enforcer rule to make sure you don't https://maven.apache.org/enforcer/enforcer-rules/reactorModuleConvergence.html
My pain is having to always `clean install` because of an MCOMPILER bug affecting just one module, and by extension all of them. I wont mention which bug - suffice to say there are such edge cases. Delany On Thu, 17 Nov 2022 at 21:01, Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > Le jeu. 17 nov. 2022 à 19:16, Arnaud Héritier <aherit...@gmail.com> a > écrit : > > > install is a source of issues if you are in a multi-module project, you > > switch between branches and do not rebuild everything (because in general > > you still have the same coordinates between branches). > > In such case you can have binaries in m2 with one branch and rebuild some > > others modules partially in your project using these artifacts in another > > branch. > > I don't know how frequent can be this kind of issue, I tried myself to > stay > > far from multi-modules as much as possible. > > > > Isnt verify the same since in a multimodule you can't just build a > submodule without missing a dep? Depends how you work on the project IMHO, > but building from the root a multimodule is not the unique way to work with > big projects (on very big project opening only submodule saves your time!) > so guess both options have pro and cons and should be used as needed but > enforce an understading of your commands as usual. > > > > > > > On Thu, Nov 17, 2022 at 9:17 AM Tamás Cservenák <ta...@cservenak.net> > > wrote: > > > > > Here it is described: > > > > > > > > > https://maven.apache.org/resolver-archives/resolver-LATEST/local-repository.html#use-cases > > > > > > Also, sorry for typo Guillaume ;) > > > > > > T > > > > > > On Thu, Nov 17, 2022 at 9:15 AM Tamás Cservenák <ta...@cservenak.net> > > > wrote: > > > > > > > ...aaand this is where "workspace" feature of split repo comes in > > play... > > > > oh Guillable, you already said it :D > > > > > > > > T > > > > > > > > On Thu, Nov 17, 2022 at 9:01 AM Guillaume Nodet <gno...@apache.org> > > > wrote: > > > > > > > >> That's specifically an area I've tried to improve over the past > > months. > > > >> Most plugins should avoid touching any output file if the content > has > > > not > > > >> changed. Things have improved a bit, and with a bit of tuning, none > > of > > > >> the > > > >> jars is actually touched during a rebuild. > > > >> Also, the build cache extension will definitely help with those use > > > cases. > > > >> > > > >> Anyway, one downside to the install is that if you're working on a > > > custom > > > >> branch, or even have checkout a tag, you kinda put in your local > repo > > > >> artifacts that you have no real control on. > > > >> With the upcoming resolver new features, the separation of locally > > built > > > >> artifacts and artifacts from remote repositories will help cleaning > > that > > > >> stuff. > > > >> > > > >> Le jeu. 17 nov. 2022, 07:21, Olivier Lamy <ol...@apache.org> a > écrit > > : > > > >> > > > >> > Agree not sure why such "marketing buzz around this" as the idea > is > > to > > > >> > share artifacts so they need to be installed or deployed. > > > >> > The only issue I can see with install vs verify is the compilation > > of > > > >> > everything all the time. > > > >> > because m-compiler-p detects a new artifact of a module in the > > reactor > > > >> > and so the m-compiler-p decides to recompile everything (because > the > > > >> > jar is newer than build start time). > > > >> > I have some work locally but I still need to push the branch. > > > >> > On very large projects (e.g lot of modules) it makes a significant > > > >> > difference. > > > >> > with install you will see "Changes detected - recompiling the > > module!" > > > >> > whereas it's totally wrong (nothing has changed) > > > >> > Maven core is even worse as well because of modello re generation > > even > > > >> > if no changes. > > > >> > it's definitely something here to improve (a sort of api where > > plugins > > > >> > can tell there is some changes or not) > > > >> > > > > >> > On Sat, 12 Nov 2022 at 08:33, Tamás Cservenák < > ta...@cservenak.net> > > > >> wrote: > > > >> > > > > > >> > > Howdy, > > > >> > > > > > >> > > in relation to this PR (the reasoning behind it): > > > >> > > https://github.com/apache/maven-mvnd/pull/734 > > > >> > > > > > >> > > I never really understood people unconditionally forcing verify > > > >> instead > > > >> > of > > > >> > > install. > > > >> > > > > > >> > > For me, personally, the "final output" of the build was always > > what > > > it > > > >> > > installs. > > > >> > > > > > >> > > While we do call internally the target directory as > "buildOutput", > > > it > > > >> is > > > >> > > more like "build temp", full of intermediate files, class files, > > > temp > > > >> > > files, state files, and who knows what. To find the final output > > in > > > >> > target > > > >> > > you need to dig in, sift through files and/or directories > > (possibly > > > >> > needing > > > >> > > knowledge even how some plugin is configured, or worse, > working). > > > >> > > > > > >> > > In the local repository, it's all on coordinates: just check the > > POM > > > >> GAV > > > >> > > you built, no need for any other knowledge (of plugin, of config > > or > > > >> > > whatever). Clear as it can be. > > > >> > > > > > >> > > And ultimately, a Maven project's ultimate dream goal is to be > > > >> deployed, > > > >> > > and what is installed, pretty much (most often) will be the same > > as > > > >> will > > > >> > be > > > >> > > deployed. Again, win-win. > > > >> > > > > > >> > > Finally, to me this feels like it is being pushed by people who > > > >> "stick" > > > >> > to > > > >> > > their local repository a bit too much :) For them, there is a > > "split > > > >> > local > > > >> > > repository" feature, where installed and cached stuff is clearly > > > >> > separated > > > >> > > (and hence, easy to nuke). > > > >> > > > > > >> > > Or in other words, I stick to the mantra "what is not in a > (local > > or > > > >> > > remote) repo, does not exist (for Maven)". And most often you do > > > want > > > >> to > > > >> > > reuse (depend on) the project being built, hence "sharing" > > > (installing > > > >> > for > > > >> > > local dev or deploy for remote dev) is wanted. > > > >> > > > > > >> > > I see verify being better for trivial cases, like you work on a > > > simple > > > >> > > (single or multi module) project, with a trivial (known to > behave) > > > >> set of > > > >> > > plugins. But in a moment when you work on two or more > > interconnected > > > >> > > projects, or non trivial projects, or just using some "nasty" > > plugin > > > >> that > > > >> > > for some reason tries to resolve things and is unaware of the > > > project, > > > >> > etc, > > > >> > > mvn verify quickly becomes a problem. > > > >> > > > > > >> > > WDYT? > > > >> > > > > > >> > > Thanks > > > >> > > T > > > >> > > > > >> > > > --------------------------------------------------------------------- > > > >> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > > > >> > For additional commands, e-mail: dev-h...@maven.apache.org > > > >> > > > > >> > > > > >> > > > > > > > > > > > > > -- > > Arnaud Héritier > > Twitter/GitHub/... : aheritier > > >