Hi Hannes, Out of curiosity, why did you reject the transformer approach (if you tried it)? Agree it can slow down a bit first startup but it is solething very easy to cache for an IDE - at indexation time even.
Sounds like more efficient and generic for an IDE than anything API related at maven level to me. Le mer. 28 sept. 2022 à 03:45, Hannes Wellmann <wellmann.hann...@gmx.net> a écrit : > Hello, > > first of all I have to correct myself M2E is currently using the > 'org.sonatype.plexus:plexus-build-api'. I looked that up incorrectly. Thank > you for mentioning that and for the historical background. > > > What will happen tomorrow, if Maven is approached by the NetBeans or IDEA > > team with some text like > > "What a nice tool you have here, it would be a shame to let something > > happen to it, right? So, you should integrate this library to make it > work > > in our IDE...". > > > > I am pretty much sure (does not have exact numbers) that the IDE > > landscape DID change quite a bit since 2009. > > I have to say that I disagree with your summary of my initial mail. > For clarification, the intention of my mail was to ask if there is a > general interest in providing an API (anywhere) at maven that *any* IDE can > use and even other maven tools as Christoph already said. > I did not request to use an IDE specific API, not even any specific API, I > just mentioned the one M2E is currently using and how it is using it as an > example to make the purpose more clear. We would be happy with any suitable > API. > And as the GAV indicates, the plexus-build-api is not Eclipse/M2E specific > and not maintained by Eclipse/M2E. M2E is just the only user, as far as I > know, and therefore it is often falsely labeled as being for > M2E-integration. > But in fact any other IDE can use that as well. I have not checked other > IDEs and therefore don't know if or why they don't use it or if they have > better approaches. But I hoped to maybe find that out as part of this > discussion. > If you already have (plans for) a "Maven API" in Maven 4 that goes in that > direction, that's great. > > The current approach of M2E to have one Eclipse-M2E specific connector per > Maven plug-in simply does not scale well and maybe other IDEs face the same > issue? > Assuming that other IDEs work in similar ways it means that there would be > one such 'connector' respectively special treatment of that plugin per IDE > for each Maven-Plugin, that is reasonably executed during workspace builds. > Therefore we thought it would be better if Plugins of Maven(-Core), but > also third-Party Plugins, would operate on some form of > abstract-FileSystem/BuildContext instead of performing file-system > operation directly or maintaining own logics to determine if something > changed. Each IDE can then provide one corresponding IDE-specific context > implementation that is injected when the plugins are executed as part of > the IDE build. But the N connectors respectively the special treatment per > IDE and Plugin would not be necessary. In total there would be much less > code and there would be less code that would have to be synchronized in > case a Maven plugins changes. > All that at the 'cost' of performing (mainly) file-system operations > differently. If the API is well designed I expect/hope that it won't be > more complicated than today, just different. > > > I find it hardly justifiable to make maven committers perform extra work > > (of integrating and maintaining) something that does not give them any > > benefit. > > Improved integration for any IDE is a benefit for me. > And personally (and I think I speak for the other M2E committers as well) > I would rather contribute adjustments of Plugins to Maven than maintaining > Eclipse specific connectors at M2E. That way I think my freetime, in which > I mainly contribute to Eclipse and M2E is used most effectively. And if > other IDEs can use that API as well, there is potential that their > maintainers contribute as well. > > > Sounds like annotation processor abstraction but more general. > > Overall Im not sure the gain for anyone - IDE can get it with a > > classfiletransformer hacked on classrealm and just a dumb javaagent > already > > Thanks for that suggestion, we have not yet considered that. > But wouldn't that require to be perpared for all different patterns of > file-system modifications used in any class of the realm to be able to > manipluate the bytecode accordingly? > Maybe I have not yet fully understand the topic, but for me that sounds > like many Mojos/Pojos have to be considered/tested individually by devs > again. > > > For the IDE to be notified, why not using a FileWatcher on the project > > folder and see if anything has changed ? > > > Do you know if this is implemented based on real file-system events on all > major OS? > If polling is used, a FileWatcher probably has a bad performance when > there are many/large projects in the workspace. > > > Hannes > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > >