Hi,
Thanks for the hint.

The wiki page you mentioned was the first thing I read when I started.
It's worth to say that it states only one explicit requirement: "Do not name your plugin maven-SOMETHING-plugin." The phrase You will typically name your plugin|<yourplugin>-maven-plugin|. does not sound as a requirement at all.

Anyway, I renamed plugin to askpass-maven-plugin and tried to use it that way. Probably nothing hardcoded here because results are the same as before (with askpass-deploy-plugin name). And even if named askpass-deploy-plugin, the plugin executes just fine in the "package" phase (with changed config in pom.xml of sample project and with different LifecyclePhase in the Mojo annotation in the plugin source, of course).


Cheers,

Petr Fišer

BCV solutions s.r.o.
Mobile: +420 607 618 243
E-mail: [email protected]
Jabber: [email protected]

On 05/20/2020 09:28 AM, Slawomir Jaranowski wrote:
Hi Peter

Your plugin name doesn't meet maven plugin name requirements.
Maybe some maven plugin name patterns are hardcoded in maven code.

Please try rename your plugin to something as askpass-maven-plugin.

https://maven.apache.org/guides/plugin/guide-java-plugin-development.html

śr., 20 maj 2020 o 08:58 Maarten Mulders <[email protected]> napisał(a):

Hi Petr,

If you want to specifically invoke your plugin, you would need
mvn

cz.fiisch.maven.plugin.deploy.askpass:askpass-deploy-plugin:1.0-SNAPSHOT:askpass
(so not mvn deploy:askpass - this looks for the askpass goal in the
maven-deploy-plugin which doesn't exist)

That said, I would expect that if you took the snippet from the pom.xml
you have in your email (without the goals section commented out), the
askpass goal of your plugin should be invoked.

I do agree that - at this stage - seeing messages about missing
distributionManagement is probably not the cause of the fact that your
custom plugin not being invoked.

You could add -X (e.g. mvn -X ....) - it will create a lot of debugging
output, it might give some clues as to why your plugin is not executing.

HTH,

Maarten

On May 20, 2020 at 07:56, Petr Fišer wrote:

Hi,
This sound interesting. I gave it a try but it didn't work for me. It
even seems that my plugin does not get picked up during "deploy" at
all.
I added maven-deploy-plugin to the build config like this:

<build>
<plugins>
<plugin>
<groupId>cz.fiisch.maven.plugin.deploy.askpass</groupId>
<artifactId>askpass-deploy-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<phase>deploy</phase>
<!--            <goals>           this does not matter for the
result...
<goal>askpass</goal>
</goals>  -->
</execution>
</executions>
</plugin>

<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<phase>deploy</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>

And when running "mvn deploy" there is still only maven-deploy-plugin
complaining about the distributionManagement config, blablabla. Like I
said before, don't think that is a cause. :)
When running specifically for the goal "deploy:askpass" the Maven
complains that "Could not find goal 'askpass' in plugin
org.apache.maven.plugins:maven-deploy-plugin:2.8.2 ..." which still
means that only maven-deploy-plugin got executed.

Any idea what could be wrong? Maybe I have some error in my POM?
Cheers,

Petr Fišer

BCV solutions s.r.o.
Mobile: +420 607 618 243
E-mail: [email protected]
Jabber: [email protected]

On 05/19/2020 02:39 PM, Maarten Mulders wrote: Hi Petr,

As far as I know, when two plugins are bound to the same phase, the
order of execution is the same as the order in which you define them in
pom.xml.
So if you want your plugin to be executed before the
maven-deploy-plugin, I guess you'll need to explicitly list the
maven-deploy-plugin in your pom.xml, straight after your custom plugin.
(Besides, it would be a good idea to do that anyway since it allows you
to specify which version of the maven-deploy-plugin your project uses.)

Hope this helps!

Maarten

On May 19, 2020 at 14:24, Petr Fišer wrote:

Hello,
I am trying to create custom maven plugin. Problem is I need to hook it
up into the "deploy" phase before the default maven-deploy-plugin gets
executed.
The plugin itself seems to be ok - I hooked it up to "package" phase to
verify its working. But when trying to get it into "deploy" phase, the
maven-deploy-plugin executes first (and of course complains that I do
not have the distributionManagement section in the pom.xml but I guess
that is not the root of my problem).

Could somebody point me in the right direction please?

Base class of the plugin:

@Mojo( name ="askpass", defaultPhase = LifecyclePhase.DEPLOY )
public class AskpassDeployPluginMojoextends AbstractMojo {
public void execute()throws MojoExecutionException,
MojoFailureException {
//do something here }
}

Reference from pom.xml of sample project where I am testing this:
<project xmlns="http://maven.apache.org/POM/4.0.0";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd";>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>cz.fiisch.maven.plugin.deploy.askpass</groupId>
<artifactId>askpass-deploy-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>askpass</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

Cheers,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Reply via email to