I don't fully get the logic
but on dependencies injection to the running script, I was just talking about:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scripting-plugin</artifactId>
<version>@project.version@</version>
<dependencies>
<!-- ScriptEngines -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-jsr223</artifactId>
<version>3.0.7</version> <!-- look for latest -->
</dependency>
<!-- and any other dependency you'd like to be available -->
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
</plugin>
regards,
Hervé
Le vendredi 26 février 2021, 09:42:22 CET Romain Manni-Bucau a écrit :
> here is a draft
> https://github.com/apache/maven-scripting-plugin/tree/rmannibucau/java-scrip
> ting-draft, still require some more love for dependency management (for now
> it will use project dependencies) but shows the overall idea I guess
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> | Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau>
> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-ee-8-high-performance
> >
>
>
> Le ven. 26 févr. 2021 à 09:07, Romain Manni-Bucau <[email protected]> a
>
> écrit :
> > Hi Hervé,
> >
> > Do you mean project binding and from there use plexus container to lookup
> > anything?
> > This can work but then the question is what is the value of this plugin?
> > To detail that let me review the usage you can get today:
> >
> > 1. groovy -> you will likely use gplus plugin which is more centered on
> > groovy and way more powerful
> > 2. js -> likely nashorn-maven-plugin for trivial script which has more
> > bindings and a better script enclosing but if you really do js you can end
> > up using frontend-maven-plugin which enables a real node scripting
> > 3. java -> hack with maven compiler+exec-maven-plugin but has the
> > dependency pitfall
> > 4. python -> probably acceptable but several jython maven plugins have
> > more integrations (not using jsr223)
> > 5. ruby -> jruby-maven-plugin, way more features and configurations needed
> > for ruby (like gems)
> >
> > Not sure other languages are often used through JSR223 but overall there
> > is almost no real cases justifying current plugin usage as of today
> > because
> > you will quickly hit limitations already solved until your case is very
> > simple and you just replace ant maven plugin IMHO.
> >
> > Indeed, you are fully right, from the project instance you can hack all
> > you want but then you end up managing complex scripts so it is generally
> > pointless and preferrable to be able:
> > 1. to configure the engine
> > 2. configure the bindings from the pom.xml (or have several virtual/or not
> > ones out of the box)
> > 3. handling the execution environment (which is sometimes linked to 1 and
> > sometimes not as for java)
> >
> > Java case also needs a bit more like using toolchain and plexus-java for
> > example - until you do it more simply using javac directly but wouldn't be
> > consistent for maven itself.
> >
> > Now I fully hear the "there is enough SPI to do it outside" and I can
> > agree with it but then my question would be "what is the goal of this
> > plugin" in current ecosystem?
> > Java integration is an opportunity to give to maven some scripting
> > capabilities keys in current way to develop for doc and integration with
> > external system but we have alternatives, this is why I sent this mail
> > before doing all the code - BTW i can push a quick PoC if you want to see
> > more what it can look like, I was not sure it was the way to solve that
> > extensibility need *from the project* itself.
> >
> > Hope it makes sense.
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> | Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github
> > <https://github.com/rmannibucau> | LinkedIn
> > <https://www.linkedin.com/in/rmannibucau> | Book
> > <https://www.packtpub.com/application-development/java-ee-8-high-performan
> > ce>
> >
> >
> > Le ven. 26 févr. 2021 à 08:40, Hervé BOUTEMY <[email protected]> a
> >
> > écrit :
> >> I don't get every detail, but have one question on dependencies: isn't
> >> dependency injection to the maven-scripting-plugin sufficient [1]
> >>
> >> do you need something more advanced, managed by the
> >> maven-scripting-plugin
> >> itself?
> >>
> >> Regards,
> >>
> >> Hervé
> >>
> >> [1]
> >> https://maven.apache.org/plugins-archives/maven-scripting-plugin-LATEST/
> >> configure-the-script-engine.html
> >> <https://maven.apache.org/plugins-archives/maven-scripting-plugin-LATEST/
> >> configure-the-script-engine.html>>>
> >> Le jeudi 25 février 2021, 16:16:09 CET Romain Manni-Bucau a écrit :
> >> > Le jeu. 25 févr. 2021 à 15:28, Markus KARG <[email protected]> a
> >> >
> >> > écrit :
> >> > > Romain,
> >> > >
> >> > > just to understand your target: In the end what you want is that the
> >>
> >> Java
> >>
> >> > > scripting plugin will execute Java source code, just like jshell
> >> > > does?
> >> > > That
> >> > > sounds interesting to me.
> >> >
> >> > This is more a side effect, the target is to be able to be able to
> >>
> >> replace
> >>
> >> > src/main/java/xxxx/build/*.java + exec-maven-plugin setups which has
> >> > the
> >> > drawback to require dependencies in the actual module (even in scope
> >> > provided).
> >> > The scripting plugin has the opportunity to normalize that through the
> >> > maven-java-scripting-engine which will take this through engine
> >> > configuration.
> >> > To illustrate the usage: it generates documentation, typed clients
> >>
> >> (http),
> >>
> >> > jsonschema, openapi.json, docker images with CDS and much more and in a
> >> > customized fashion.
> >> > Big gain is to not have to leak all dependencies in the build and keep
> >> > build part of the build isolated (a profile can enable to code in the
> >>
> >> IDE
> >>
> >> > but when running mvn xxx it is gone/deactivated).
> >> >
> >> > Side notes:
> >> > 1. creating a build module is not an option since it is really about
> >>
> >> having
> >>
> >> > the build code in the related module and not a "put it all" module
> >>
> >> which is
> >>
> >> > very hard to maintain.
> >> > 2. creating a mojo for these needs is inefficient in terms of
> >>
> >> maintenance
> >>
> >> > and customization level (I come from there) and ultra verbose in the
> >> > pom
> >> > compared to this scripting option
> >> >
> >> >
> >> > Hope it clarifies my goal
> >> >
> >> > > -Markus
> >> > >
> >> > >
> >> > > -----Ursprüngliche Nachricht-----
> >> > > Von: Romain Manni-Bucau [mailto:[email protected]]
> >> > > Gesendet: Donnerstag, 25. Februar 2021 09:59
> >> > > An: Maven Developers List
> >> > > Betreff: Future of maven scripting plugin, java?
> >> > >
> >> > > Hi all,
> >> > >
> >> > > Wonder if maven scripting plugin has some future plans or not.
> >> > > Very concretely I'm interested in being able to use java as scripting
> >> > > files
> >> > > (something along src/build/scripting in terms of structure in final
> >> > > project).
> >> > > Since we are in maven we have javac so it is not hard to implement a
> >> > > jsr223
> >> > > (with tool provider or not is a detail) but more complicated thing is
> >>
> >> the
> >>
> >> > > classpath, it needs the plugin to be able to create a classloader
> >>
> >> adjusted
> >>
> >> > > for that kind of execution (potentially compiling the whole scripting
> >> > > folder). In terms of impacts it means enabling to configure the
> >> > > script
> >> > > engine, ie pass args from the mojo to the getScriptEngine method
> >> > > (typically
> >> > > kind of the same as exec maven plugin, ie scope/classpath).
> >> > >
> >> > > So changes would be:
> >> > >
> >> > > 1. implement a java script engine
> >> > > 2. make the script engine instantiation more configurable
> >> > >
> >> > > Do you think it is worth it or exec maven plugin is still preferred?
> >> > >
> >> > > Romain Manni-Bucau
> >> > > @rmannibucau <https://twitter.com/rmannibucau> | Blog
> >> > > <https://rmannibucau.metawerx.net/> | Old Blog
> >> > > <http://rmannibucau.wordpress.com> | Github <
> >> > > https://github.com/rmannibucau> |
> >> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >> > > <
> >>
> >> https://www.packtpub.com/application-development/java-ee-8-high-performan
> >> c
> >>
> >> > > e
> >> > >
> >> > >
> >> > >
> >> > > ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: [email protected]
> >> > > For additional commands, e-mail: [email protected]
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]