Bind javadoc and sources goals to deploy phase before deploy goal is run









up vote
0
down vote

favorite












I would like my project to generate javadoc and sources artifacts only when I activate the deploy phase, not when I ask for mvn install. That is because I only need those artifacts when deploying, and I want to save time when not deploying.



Therefore, I thought about binding the maven-source-plugin goal to the deploy phase.



But, I need those artifacts to exist at the time the deploy goal runs. Thus, the source and javadoc generation goals must run before the deploy goal. Unfortunately, the goal from the packaging is executed first (as documented).



I am aware the usual advice is to define a “release” profile and define the javadoc plugin (and related ones) only there. But this seems needlessly complicated for my simple use case. Now I need to think about activating the release profile exactly when I ask for deploying, I would prefer the right plugins to be activated automatically depending on the phase I ask for.



I am surprised this does not seem to be considered possible or even desirable by Maven (as it does not seem to allow for a goal to run in the deploy phase but before the deploy goal). Did I miss something, is this possible? Or, is there any reason not to do it in the way I consider? (Otherwise, I am thinking about introducing a feature request.)










share|improve this question

















  • 1




    in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
    – wemu
    Nov 10 at 21:42






  • 1




    “The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
    – Olivier Cailloux
    Nov 12 at 13:27















up vote
0
down vote

favorite












I would like my project to generate javadoc and sources artifacts only when I activate the deploy phase, not when I ask for mvn install. That is because I only need those artifacts when deploying, and I want to save time when not deploying.



Therefore, I thought about binding the maven-source-plugin goal to the deploy phase.



But, I need those artifacts to exist at the time the deploy goal runs. Thus, the source and javadoc generation goals must run before the deploy goal. Unfortunately, the goal from the packaging is executed first (as documented).



I am aware the usual advice is to define a “release” profile and define the javadoc plugin (and related ones) only there. But this seems needlessly complicated for my simple use case. Now I need to think about activating the release profile exactly when I ask for deploying, I would prefer the right plugins to be activated automatically depending on the phase I ask for.



I am surprised this does not seem to be considered possible or even desirable by Maven (as it does not seem to allow for a goal to run in the deploy phase but before the deploy goal). Did I miss something, is this possible? Or, is there any reason not to do it in the way I consider? (Otherwise, I am thinking about introducing a feature request.)










share|improve this question

















  • 1




    in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
    – wemu
    Nov 10 at 21:42






  • 1




    “The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
    – Olivier Cailloux
    Nov 12 at 13:27













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I would like my project to generate javadoc and sources artifacts only when I activate the deploy phase, not when I ask for mvn install. That is because I only need those artifacts when deploying, and I want to save time when not deploying.



Therefore, I thought about binding the maven-source-plugin goal to the deploy phase.



But, I need those artifacts to exist at the time the deploy goal runs. Thus, the source and javadoc generation goals must run before the deploy goal. Unfortunately, the goal from the packaging is executed first (as documented).



I am aware the usual advice is to define a “release” profile and define the javadoc plugin (and related ones) only there. But this seems needlessly complicated for my simple use case. Now I need to think about activating the release profile exactly when I ask for deploying, I would prefer the right plugins to be activated automatically depending on the phase I ask for.



I am surprised this does not seem to be considered possible or even desirable by Maven (as it does not seem to allow for a goal to run in the deploy phase but before the deploy goal). Did I miss something, is this possible? Or, is there any reason not to do it in the way I consider? (Otherwise, I am thinking about introducing a feature request.)










share|improve this question













I would like my project to generate javadoc and sources artifacts only when I activate the deploy phase, not when I ask for mvn install. That is because I only need those artifacts when deploying, and I want to save time when not deploying.



Therefore, I thought about binding the maven-source-plugin goal to the deploy phase.



But, I need those artifacts to exist at the time the deploy goal runs. Thus, the source and javadoc generation goals must run before the deploy goal. Unfortunately, the goal from the packaging is executed first (as documented).



I am aware the usual advice is to define a “release” profile and define the javadoc plugin (and related ones) only there. But this seems needlessly complicated for my simple use case. Now I need to think about activating the release profile exactly when I ask for deploying, I would prefer the right plugins to be activated automatically depending on the phase I ask for.



I am surprised this does not seem to be considered possible or even desirable by Maven (as it does not seem to allow for a goal to run in the deploy phase but before the deploy goal). Did I miss something, is this possible? Or, is there any reason not to do it in the way I consider? (Otherwise, I am thinking about introducing a feature request.)







java maven maven-deploy-plugin






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 21:11









Olivier Cailloux

559418




559418







  • 1




    in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
    – wemu
    Nov 10 at 21:42






  • 1




    “The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
    – Olivier Cailloux
    Nov 12 at 13:27













  • 1




    in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
    – wemu
    Nov 10 at 21:42






  • 1




    “The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
    – Olivier Cailloux
    Nov 12 at 13:27








1




1




in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
– wemu
Nov 10 at 21:42




in this case I seems the advice to use a profile fits best. The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository. You might be able to gain control over this by configuring the source plugin to the deploy phase and also the deploy plugin itself (mainly keeping the defaults, only put it below in the pom). Since the order in the pom will be reflected in the execution order.
– wemu
Nov 10 at 21:42




1




1




“The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
– Olivier Cailloux
Nov 12 at 13:27





“The javadoc files you create would actually also be used for the install phase when the artifacts are copied into the local repository.” ⇒ Very good point, thank you.
– Olivier Cailloux
Nov 12 at 13:27


















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243440%2fbind-javadoc-and-sources-goals-to-deploy-phase-before-deploy-goal-is-run%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243440%2fbind-javadoc-and-sources-goals-to-deploy-phase-before-deploy-goal-is-run%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Barbados

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3