Re: multimodule aggregate javadoc jar
Well almost, as far as I understand it's having aggregate-jar-no-fork and binding it to a submodule that is after all other submodules in the build plan (a "distribution"- like artifact, or an aggregator that is not the parent). Unfortunately this changes the artifact in which clients look up the javadocs (we used to put the aggregated javadocs in our parent pom) so it's a bit confusing.. Thanks again for your time. Jon Le mar. 4 févr. 2020 à 22:10, Robert Scholte a écrit : > Well, so we're back to the missing javadoc:aggregate-jar-no-fork :) > > > On 4-2-2020 19:38:43, Jon Harper wrote: > Hi Robert, thanks again for your answers. > > I can't bind the javadoc:aggregate-jar goal to the package phase because > goals with "@Mojo ( aggregator = true )" are only executed once (instead of > once per module) if they are invoked from the command line. > > Cheers, > Jon > > Le mar. 4 févr. 2020 à 18:48, Robert Scholte a > écrit : > > > Hi Jon, > > > > it is not possible so start a lifecycle from the middle. > > In case of 'mvn package javadoc:aggregate-jar install' you should bind > > the javadoc:aggregate-jar to the package-phase, and now you can run 'mvn > > install'. > > If you don't want to run it all the time, consider putting the > > javadoc-plugin in a profile and activate it when wished. > > > > You experience might improve if/when we implement MNG-5885 > > > > thanks, > > Robert > > > > https://issues.apache.org/jira/browse/MNG-5885 > > On 4-2-2020 08:58:18, Jon Harper wrote: > > Hi Robert, > > thanks for you reply. I'll keep an eye out for these improvements. > > > > Another obstacle to my use case is that when running > > $ mvn package javadoc:aggregate-jar install > > the install phase doesn't continue where package finished, instead it > > starts over. > > > > Is there a way to tell maven to run the lifecycle only once and > > continue from the previous phase ? > > > > Note: > > The same thing happens when running > > $ mvn package install > > or even > > $ mvn package package > > everything is done twice. > > > > thanks in advance, > > Jon > > > > On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > > > > > Hi Jon, > > > > > > it is bothering me for a while that Maven is not yet capable to see > that > > a fork is not required (in most cases) when it is executed as part of a > > lifecycle. > > > Introducing x-no-fork goals is a fast workaround, but it is probably > > time to do this properly. > > > > > > Also plugins should be improved to see if they should do their action, > > e.g.: > > > Consider using the following flag in for the java compiler: > > > > > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info > files > > > > > > Maybe this will already improve your buildtime. > > > > > > thanks, > > > Robert > > > > > > On 2-2-2020 17:56:15, Jon Harper wrote: > > > Hi list, > > > > > > I would like to package a multimodule project (jar of each submodule) > > > and then create one aggregated javadoc jar attached to root pom. > > > The best solution I came up with is using the following command line > > > > > > $ mvn package javadoc:aggregate-jar > > > > > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > > > true )", so when the goal is explicitly called on the command line it > > > executes only once on the root pom. (if the goal is bound to a phase > > > of the lifecycle of the root pom, it will execute before the children > > > which I don't want) > > > > > > One downside of this approach is that aggregate-jar forks the > > > lifecycle and so everything gets recompiled (which takes a long time > > > if you have many modules, or if you use features that prevent avoiding > > > recompiling, like having a package-info.java or using > > > maven-templating-plugin to insert build timestamps in your sources) > > > > > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the > > problem. > > > > > > Is my understanding correct, and can we add the aggregate-jar-no-fork > > > goal ? Or what is everyone doing to generate aggregated javadocs > > > without recompiling everything > > > > > > Thanks, > > > Jon > > > > > > PS: another downside is that you must not forget to add the explicit > > > goal on the command line, but I can't see a solution for that, except > > > for the proposed lifecycle redesign with pre and post phases, which we > > > will get in the far future as far as I understand. > > > > > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > > > people who generate their aggregated javadoc on a "distribution" > > > submodule which has dependencies to everything instead of the root > > > pom. Currently they can make it work by using aggregate-no-fork and > > > then maven-jar-plugin but it's a bit complicated. > > > > > > - > > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > > For additional commands, e-mail:
Re: multimodule aggregate javadoc jar
Well, so we're back to the missing javadoc:aggregate-jar-no-fork :) On 4-2-2020 19:38:43, Jon Harper wrote: Hi Robert, thanks again for your answers. I can't bind the javadoc:aggregate-jar goal to the package phase because goals with "@Mojo ( aggregator = true )" are only executed once (instead of once per module) if they are invoked from the command line. Cheers, Jon Le mar. 4 févr. 2020 à 18:48, Robert Scholte a écrit : > Hi Jon, > > it is not possible so start a lifecycle from the middle. > In case of 'mvn package javadoc:aggregate-jar install' you should bind > the javadoc:aggregate-jar to the package-phase, and now you can run 'mvn > install'. > If you don't want to run it all the time, consider putting the > javadoc-plugin in a profile and activate it when wished. > > You experience might improve if/when we implement MNG-5885 > > thanks, > Robert > > https://issues.apache.org/jira/browse/MNG-5885 > On 4-2-2020 08:58:18, Jon Harper wrote: > Hi Robert, > thanks for you reply. I'll keep an eye out for these improvements. > > Another obstacle to my use case is that when running > $ mvn package javadoc:aggregate-jar install > the install phase doesn't continue where package finished, instead it > starts over. > > Is there a way to tell maven to run the lifecycle only once and > continue from the previous phase ? > > Note: > The same thing happens when running > $ mvn package install > or even > $ mvn package package > everything is done twice. > > thanks in advance, > Jon > > On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > > > Hi Jon, > > > > it is bothering me for a while that Maven is not yet capable to see that > a fork is not required (in most cases) when it is executed as part of a > lifecycle. > > Introducing x-no-fork goals is a fast workaround, but it is probably > time to do this properly. > > > > Also plugins should be improved to see if they should do their action, > e.g.: > > Consider using the following flag in for the java compiler: > > > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > > > Maybe this will already improve your buildtime. > > > > thanks, > > Robert > > > > On 2-2-2020 17:56:15, Jon Harper wrote: > > Hi list, > > > > I would like to package a multimodule project (jar of each submodule) > > and then create one aggregated javadoc jar attached to root pom. > > The best solution I came up with is using the following command line > > > > $ mvn package javadoc:aggregate-jar > > > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > > true )", so when the goal is explicitly called on the command line it > > executes only once on the root pom. (if the goal is bound to a phase > > of the lifecycle of the root pom, it will execute before the children > > which I don't want) > > > > One downside of this approach is that aggregate-jar forks the > > lifecycle and so everything gets recompiled (which takes a long time > > if you have many modules, or if you use features that prevent avoiding > > recompiling, like having a package-info.java or using > > maven-templating-plugin to insert build timestamps in your sources) > > > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the > problem. > > > > Is my understanding correct, and can we add the aggregate-jar-no-fork > > goal ? Or what is everyone doing to generate aggregated javadocs > > without recompiling everything > > > > Thanks, > > Jon > > > > PS: another downside is that you must not forget to add the explicit > > goal on the command line, but I can't see a solution for that, except > > for the proposed lifecycle redesign with pre and post phases, which we > > will get in the far future as far as I understand. > > > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > > people who generate their aggregated javadoc on a "distribution" > > submodule which has dependencies to everything instead of the root > > pom. Currently they can make it work by using aggregate-no-fork and > > then maven-jar-plugin but it's a bit complicated. > > > > - > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > > > - > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > >
Re: multimodule aggregate javadoc jar
Hi Robert, thanks again for your answers. I can't bind the javadoc:aggregate-jar goal to the package phase because goals with "@Mojo ( aggregator = true )" are only executed once (instead of once per module) if they are invoked from the command line. Cheers, Jon Le mar. 4 févr. 2020 à 18:48, Robert Scholte a écrit : > Hi Jon, > > it is not possible so start a lifecycle from the middle. > In case of 'mvn package javadoc:aggregate-jar install' you should bind > the javadoc:aggregate-jar to the package-phase, and now you can run 'mvn > install'. > If you don't want to run it all the time, consider putting the > javadoc-plugin in a profile and activate it when wished. > > You experience might improve if/when we implement MNG-5885 > > thanks, > Robert > > https://issues.apache.org/jira/browse/MNG-5885 > On 4-2-2020 08:58:18, Jon Harper wrote: > Hi Robert, > thanks for you reply. I'll keep an eye out for these improvements. > > Another obstacle to my use case is that when running > $ mvn package javadoc:aggregate-jar install > the install phase doesn't continue where package finished, instead it > starts over. > > Is there a way to tell maven to run the lifecycle only once and > continue from the previous phase ? > > Note: > The same thing happens when running > $ mvn package install > or even > $ mvn package package > everything is done twice. > > thanks in advance, > Jon > > On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > > > Hi Jon, > > > > it is bothering me for a while that Maven is not yet capable to see that > a fork is not required (in most cases) when it is executed as part of a > lifecycle. > > Introducing x-no-fork goals is a fast workaround, but it is probably > time to do this properly. > > > > Also plugins should be improved to see if they should do their action, > e.g.: > > Consider using the following flag in for the java compiler: > > > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > > > Maybe this will already improve your buildtime. > > > > thanks, > > Robert > > > > On 2-2-2020 17:56:15, Jon Harper wrote: > > Hi list, > > > > I would like to package a multimodule project (jar of each submodule) > > and then create one aggregated javadoc jar attached to root pom. > > The best solution I came up with is using the following command line > > > > $ mvn package javadoc:aggregate-jar > > > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > > true )", so when the goal is explicitly called on the command line it > > executes only once on the root pom. (if the goal is bound to a phase > > of the lifecycle of the root pom, it will execute before the children > > which I don't want) > > > > One downside of this approach is that aggregate-jar forks the > > lifecycle and so everything gets recompiled (which takes a long time > > if you have many modules, or if you use features that prevent avoiding > > recompiling, like having a package-info.java or using > > maven-templating-plugin to insert build timestamps in your sources) > > > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the > problem. > > > > Is my understanding correct, and can we add the aggregate-jar-no-fork > > goal ? Or what is everyone doing to generate aggregated javadocs > > without recompiling everything > > > > Thanks, > > Jon > > > > PS: another downside is that you must not forget to add the explicit > > goal on the command line, but I can't see a solution for that, except > > for the proposed lifecycle redesign with pre and post phases, which we > > will get in the far future as far as I understand. > > > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > > people who generate their aggregated javadoc on a "distribution" > > submodule which has dependencies to everything instead of the root > > pom. Currently they can make it work by using aggregate-no-fork and > > then maven-jar-plugin but it's a bit complicated. > > > > - > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > > > - > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > >
Re: multimodule aggregate javadoc jar
Looks like a bug, please create a ticket for it at https://issues.apache.org/jira/browse/MNG thanks, Robert On 4-2-2020 09:20:12, Jon Harper wrote: Also a "funny" thing is that running an aggregator mojo between 2 phases in a multimodule project shows the wrong build step numbers: (In this example I generated a quick project setup with mvn archetype: a parent pom with 2 children) # javadoc:jar is *not* an aggregator mojo, this looks correct $ mvn package javadoc:jar install [INFO] Building my-aggrega 1.0-SNAPSHOT [1/3] [INFO] Building my-app3 1.0-SNAPSHOT [2/3] [INFO] Building my-app2 1.0-SNAPSHOT [3/3] $ mvn package javadoc:aggregate-jar install [INFO] Building my-aggrega 1.0-SNAPSHOT [1/3] [INFO] Building my-app3 1.0-SNAPSHOT [2/3] [INFO] Building my-app2 1.0-SNAPSHOT [3/3] [INFO] Building my-aggrega 1.0-SNAPSHOT [4/3] [INFO] Building my-aggrega 1.0-SNAPSHOT [5/3] [INFO] Building my-app3 1.0-SNAPSHOT [6/3] [INFO] Building my-app2 1.0-SNAPSHOT [7/3] Jon On Tue, Feb 4, 2020 at 8:58 AM Jon Harper wrote: > > Hi Robert, > thanks for you reply. I'll keep an eye out for these improvements. > > Another obstacle to my use case is that when running > $ mvn package javadoc:aggregate-jar install > the install phase doesn't continue where package finished, instead it > starts over. > > Is there a way to tell maven to run the lifecycle only once and > continue from the previous phase ? > > Note: > The same thing happens when running > $ mvn package install > or even > $ mvn package package > everything is done twice. > > thanks in advance, > Jon > > On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > > > Hi Jon, > > > > it is bothering me for a while that Maven is not yet capable to see that a > > fork is not required (in most cases) when it is executed as part of a > > lifecycle. > > Introducing x-no-fork goals is a fast workaround, but it is probably time > > to do this properly. > > > > Also plugins should be improved to see if they should do their action, e.g.: > > Consider using the following flag in for the java compiler: > > > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > > > Maybe this will already improve your buildtime. > > > > thanks, > > Robert > > > > On 2-2-2020 17:56:15, Jon Harper wrote: > > Hi list, > > > > I would like to package a multimodule project (jar of each submodule) > > and then create one aggregated javadoc jar attached to root pom. > > The best solution I came up with is using the following command line > > > > $ mvn package javadoc:aggregate-jar > > > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > > true )", so when the goal is explicitly called on the command line it > > executes only once on the root pom. (if the goal is bound to a phase > > of the lifecycle of the root pom, it will execute before the children > > which I don't want) > > > > One downside of this approach is that aggregate-jar forks the > > lifecycle and so everything gets recompiled (which takes a long time > > if you have many modules, or if you use features that prevent avoiding > > recompiling, like having a package-info.java or using > > maven-templating-plugin to insert build timestamps in your sources) > > > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the > > problem. > > > > Is my understanding correct, and can we add the aggregate-jar-no-fork > > goal ? Or what is everyone doing to generate aggregated javadocs > > without recompiling everything > > > > Thanks, > > Jon > > > > PS: another downside is that you must not forget to add the explicit > > goal on the command line, but I can't see a solution for that, except > > for the proposed lifecycle redesign with pre and post phases, which we > > will get in the far future as far as I understand. > > > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > > people who generate their aggregated javadoc on a "distribution" > > submodule which has dependencies to everything instead of the root > > pom. Currently they can make it work by using aggregate-no-fork and > > then maven-jar-plugin but it's a bit complicated. > > > > - > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: multimodule aggregate javadoc jar
Hi Jon, it is not possible so start a lifecycle from the middle. In case of 'mvn package javadoc:aggregate-jar install' you should bind the javadoc:aggregate-jar to the package-phase, and now you can run 'mvn install'. If you don't want to run it all the time, consider putting the javadoc-plugin in a profile and activate it when wished. You experience might improve if/when we implement MNG-5885 thanks, Robert https://issues.apache.org/jira/browse/MNG-5885 On 4-2-2020 08:58:18, Jon Harper wrote: Hi Robert, thanks for you reply. I'll keep an eye out for these improvements. Another obstacle to my use case is that when running $ mvn package javadoc:aggregate-jar install the install phase doesn't continue where package finished, instead it starts over. Is there a way to tell maven to run the lifecycle only once and continue from the previous phase ? Note: The same thing happens when running $ mvn package install or even $ mvn package package everything is done twice. thanks in advance, Jon On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > Hi Jon, > > it is bothering me for a while that Maven is not yet capable to see that a > fork is not required (in most cases) when it is executed as part of a > lifecycle. > Introducing x-no-fork goals is a fast workaround, but it is probably time to > do this properly. > > Also plugins should be improved to see if they should do their action, e.g.: > Consider using the following flag in for the java compiler: > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > Maybe this will already improve your buildtime. > > thanks, > Robert > > On 2-2-2020 17:56:15, Jon Harper wrote: > Hi list, > > I would like to package a multimodule project (jar of each submodule) > and then create one aggregated javadoc jar attached to root pom. > The best solution I came up with is using the following command line > > $ mvn package javadoc:aggregate-jar > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > true )", so when the goal is explicitly called on the command line it > executes only once on the root pom. (if the goal is bound to a phase > of the lifecycle of the root pom, it will execute before the children > which I don't want) > > One downside of this approach is that aggregate-jar forks the > lifecycle and so everything gets recompiled (which takes a long time > if you have many modules, or if you use features that prevent avoiding > recompiling, like having a package-info.java or using > maven-templating-plugin to insert build timestamps in your sources) > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the problem. > > Is my understanding correct, and can we add the aggregate-jar-no-fork > goal ? Or what is everyone doing to generate aggregated javadocs > without recompiling everything > > Thanks, > Jon > > PS: another downside is that you must not forget to add the explicit > goal on the command line, but I can't see a solution for that, except > for the proposed lifecycle redesign with pre and post phases, which we > will get in the far future as far as I understand. > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > people who generate their aggregated javadoc on a "distribution" > submodule which has dependencies to everything instead of the root > pom. Currently they can make it work by using aggregate-no-fork and > then maven-jar-plugin but it's a bit complicated. > > - > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: multimodule aggregate javadoc jar
Also a "funny" thing is that running an aggregator mojo between 2 phases in a multimodule project shows the wrong build step numbers: (In this example I generated a quick project setup with mvn archetype: a parent pom with 2 children) # javadoc:jar is *not* an aggregator mojo, this looks correct $ mvn package javadoc:jar install [INFO] Building my-aggrega 1.0-SNAPSHOT [1/3] [INFO] Building my-app3 1.0-SNAPSHOT [2/3] [INFO] Building my-app2 1.0-SNAPSHOT [3/3] $ mvn package javadoc:aggregate-jar install [INFO] Building my-aggrega 1.0-SNAPSHOT [1/3] [INFO] Building my-app3 1.0-SNAPSHOT [2/3] [INFO] Building my-app2 1.0-SNAPSHOT [3/3] [INFO] Building my-aggrega 1.0-SNAPSHOT [4/3] [INFO] Building my-aggrega 1.0-SNAPSHOT [5/3] [INFO] Building my-app3 1.0-SNAPSHOT [6/3] [INFO] Building my-app2 1.0-SNAPSHOT [7/3] Jon On Tue, Feb 4, 2020 at 8:58 AM Jon Harper wrote: > > Hi Robert, > thanks for you reply. I'll keep an eye out for these improvements. > > Another obstacle to my use case is that when running > $ mvn package javadoc:aggregate-jar install > the install phase doesn't continue where package finished, instead it > starts over. > > Is there a way to tell maven to run the lifecycle only once and > continue from the previous phase ? > > Note: > The same thing happens when running > $ mvn package install > or even > $ mvn package package > everything is done twice. > > thanks in advance, > Jon > > On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > > > Hi Jon, > > > > it is bothering me for a while that Maven is not yet capable to see that a > > fork is not required (in most cases) when it is executed as part of a > > lifecycle. > > Introducing x-no-fork goals is a fast workaround, but it is probably time > > to do this properly. > > > > Also plugins should be improved to see if they should do their action, e.g.: > > Consider using the following flag in for the java compiler: > > > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > > > Maybe this will already improve your buildtime. > > > > thanks, > > Robert > > > > On 2-2-2020 17:56:15, Jon Harper wrote: > > Hi list, > > > > I would like to package a multimodule project (jar of each submodule) > > and then create one aggregated javadoc jar attached to root pom. > > The best solution I came up with is using the following command line > > > > $ mvn package javadoc:aggregate-jar > > > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > > true )", so when the goal is explicitly called on the command line it > > executes only once on the root pom. (if the goal is bound to a phase > > of the lifecycle of the root pom, it will execute before the children > > which I don't want) > > > > One downside of this approach is that aggregate-jar forks the > > lifecycle and so everything gets recompiled (which takes a long time > > if you have many modules, or if you use features that prevent avoiding > > recompiling, like having a package-info.java or using > > maven-templating-plugin to insert build timestamps in your sources) > > > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the > > problem. > > > > Is my understanding correct, and can we add the aggregate-jar-no-fork > > goal ? Or what is everyone doing to generate aggregated javadocs > > without recompiling everything > > > > Thanks, > > Jon > > > > PS: another downside is that you must not forget to add the explicit > > goal on the command line, but I can't see a solution for that, except > > for the proposed lifecycle redesign with pre and post phases, which we > > will get in the far future as far as I understand. > > > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > > people who generate their aggregated javadoc on a "distribution" > > submodule which has dependencies to everything instead of the root > > pom. Currently they can make it work by using aggregate-no-fork and > > then maven-jar-plugin but it's a bit complicated. > > > > - > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: multimodule aggregate javadoc jar
Hi Robert, thanks for you reply. I'll keep an eye out for these improvements. Another obstacle to my use case is that when running $ mvn package javadoc:aggregate-jar install the install phase doesn't continue where package finished, instead it starts over. Is there a way to tell maven to run the lifecycle only once and continue from the previous phase ? Note: The same thing happens when running $ mvn package install or even $ mvn package package everything is done twice. thanks in advance, Jon On Mon, Feb 3, 2020 at 8:12 PM Robert Scholte wrote: > > Hi Jon, > > it is bothering me for a while that Maven is not yet capable to see that a > fork is not required (in most cases) when it is executed as part of a > lifecycle. > Introducing x-no-fork goals is a fast workaround, but it is probably time to > do this properly. > > Also plugins should be improved to see if they should do their action, e.g.: > Consider using the following flag in for the java compiler: > > -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files > > Maybe this will already improve your buildtime. > > thanks, > Robert > > On 2-2-2020 17:56:15, Jon Harper wrote: > Hi list, > > I would like to package a multimodule project (jar of each submodule) > and then create one aggregated javadoc jar attached to root pom. > The best solution I came up with is using the following command line > > $ mvn package javadoc:aggregate-jar > > It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = > true )", so when the goal is explicitly called on the command line it > executes only once on the root pom. (if the goal is bound to a phase > of the lifecycle of the root pom, it will execute before the children > which I don't want) > > One downside of this approach is that aggregate-jar forks the > lifecycle and so everything gets recompiled (which takes a long time > if you have many modules, or if you use features that prevent avoiding > recompiling, like having a package-info.java or using > maven-templating-plugin to insert build timestamps in your sources) > > It seems like adding a javadoc:aggregate-jar-no-fork would solve the problem. > > Is my understanding correct, and can we add the aggregate-jar-no-fork > goal ? Or what is everyone doing to generate aggregated javadocs > without recompiling everything > > Thanks, > Jon > > PS: another downside is that you must not forget to add the explicit > goal on the command line, but I can't see a solution for that, except > for the proposed lifecycle redesign with pre and post phases, which we > will get in the far future as far as I understand. > > PS2: adding javadoc:aggregate-jar-no-fork would also be useful for > people who generate their aggregated javadoc on a "distribution" > submodule which has dependencies to everything instead of the root > pom. Currently they can make it work by using aggregate-no-fork and > then maven-jar-plugin but it's a bit complicated. > > - > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: multimodule aggregate javadoc jar
Hi Jon, it is bothering me for a while that Maven is not yet capable to see that a fork is not required (in most cases) when it is executed as part of a lifecycle. Introducing x-no-fork goals is a fast workaround, but it is probably time to do this properly. Also plugins should be improved to see if they should do their action, e.g.: Consider using the following flag in for the java compiler: -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files Maybe this will already improve your buildtime. thanks, Robert On 2-2-2020 17:56:15, Jon Harper wrote: Hi list, I would like to package a multimodule project (jar of each submodule) and then create one aggregated javadoc jar attached to root pom. The best solution I came up with is using the following command line $ mvn package javadoc:aggregate-jar It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = true )", so when the goal is explicitly called on the command line it executes only once on the root pom. (if the goal is bound to a phase of the lifecycle of the root pom, it will execute before the children which I don't want) One downside of this approach is that aggregate-jar forks the lifecycle and so everything gets recompiled (which takes a long time if you have many modules, or if you use features that prevent avoiding recompiling, like having a package-info.java or using maven-templating-plugin to insert build timestamps in your sources) It seems like adding a javadoc:aggregate-jar-no-fork would solve the problem. Is my understanding correct, and can we add the aggregate-jar-no-fork goal ? Or what is everyone doing to generate aggregated javadocs without recompiling everything Thanks, Jon PS: another downside is that you must not forget to add the explicit goal on the command line, but I can't see a solution for that, except for the proposed lifecycle redesign with pre and post phases, which we will get in the far future as far as I understand. PS2: adding javadoc:aggregate-jar-no-fork would also be useful for people who generate their aggregated javadoc on a "distribution" submodule which has dependencies to everything instead of the root pom. Currently they can make it work by using aggregate-no-fork and then maven-jar-plugin but it's a bit complicated. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
multimodule aggregate javadoc jar
Hi list, I would like to package a multimodule project (jar of each submodule) and then create one aggregated javadoc jar attached to root pom. The best solution I came up with is using the following command line $ mvn package javadoc:aggregate-jar It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = true )", so when the goal is explicitly called on the command line it executes only once on the root pom. (if the goal is bound to a phase of the lifecycle of the root pom, it will execute before the children which I don't want) One downside of this approach is that aggregate-jar forks the lifecycle and so everything gets recompiled (which takes a long time if you have many modules, or if you use features that prevent avoiding recompiling, like having a package-info.java or using maven-templating-plugin to insert build timestamps in your sources) It seems like adding a javadoc:aggregate-jar-no-fork would solve the problem. Is my understanding correct, and can we add the aggregate-jar-no-fork goal ? Or what is everyone doing to generate aggregated javadocs without recompiling everything Thanks, Jon PS: another downside is that you must not forget to add the explicit goal on the command line, but I can't see a solution for that, except for the proposed lifecycle redesign with pre and post phases, which we will get in the far future as far as I understand. PS2: adding javadoc:aggregate-jar-no-fork would also be useful for people who generate their aggregated javadoc on a "distribution" submodule which has dependencies to everything instead of the root pom. Currently they can make it work by using aggregate-no-fork and then maven-jar-plugin but it's a bit complicated. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
multimodule aggregate javadoc jar
Hi list, I would like to package a multimodule project (jar of each submodule) and then create one aggregated javadoc jar attached to root pom. The best solution I came up with is using the following command line $ mvn package javadoc:aggregate-jar It uses the fact that aggregate-jar is declared "@Mojo ( aggregator = true )", so when the goal is explicitly called on the command line it executes only once on the root pom. (if the goal is bound to a phase of the lifecycle of the root pom, it will execute before the children which I don't want) One downside of this approach is that aggregate-jar forks the lifecycle and so everything gets recompiled (which takes a long time if you have many modules, or if you use features that prevent avoiding recompiling, like having a package-info.java or using maven-templating-plugin to insert build timestamps in your sources) It seems like adding a javadoc:aggregate-jar-no-fork would solve the problem. Is my understanding correct, and can we add the aggregate-jar-no-fork goal ? Or what is everyone doing to generate aggregated javadocs without recompiling everything Thanks, Jon PS: another downside is that you must not forget to add the explicit goal on the command line, but I can't see a solution for that, except for the proposed lifecycle redesign with pre and post phases, which we will get in the far future as far as I understand. PS2: adding javadoc:aggregate-jar-no-fork would also be useful for people who generate their aggregated javadoc on a "distribution" submodule which has dependencies to everything instead of the root pom. Currently they can make it work by using aggregate-no-fork and then maven-jar-plugin but it's a bit complicated. Jon - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org