Java 如何在maven中的某个阶段之后显式执行插件?

Java 如何在maven中的某个阶段之后显式执行插件?,java,maven,jar-signing,Java,Maven,Jar Signing,我正在使用JavaFXMaven插件创建JavaFXWebStart应用程序。我在用javafxmaven插件签署jar文件时遇到了一些问题。我想做的是,用javafxmaven插件打包(jar)应用程序,然后使用maven jarsigner插件对jar文件进行签名。 在打包应用程序后,如何执行maven jarsigner插件对文件进行签名 <plugin> <groupId>org.apache.maven.plugins</g

我正在使用JavaFXMaven插件创建JavaFXWebStart应用程序。我在用javafxmaven插件签署jar文件时遇到了一些问题。我想做的是,用javafxmaven插件打包(jar)应用程序,然后使用maven jarsigner插件对jar文件进行签名。 在打包应用程序后,如何执行maven jarsigner插件对文件进行签名

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jarsigner-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>

                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archiveDirectory>target/jfx/app/</archiveDirectory>
                    <includes>
                        <include>**/*.jar</include>
                    </includes>
                    <keystore>path tp keystore</keystore>
                    <alias>alias</alias>
                    <storepass>password</storepass>
                    <keypass>password</keypass>
                </configuration>
            </plugin>  

            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>8.3.0</version>
                <configuration>

                    <bundler>jnlp</bundler>
                    <mainClass>com.myorg.myapp.launcher.myappLauncher</mainClass>
                    <bundleArguments>
                        <jnlp.allPermisions>true</jnlp.allPermisions>
                        <jnlp.includeDT>true</jnlp.includeDT>
                        <jnlp.outfile>myapp</jnlp.outfile>
                    </bundleArguments>
                </configuration>
            </plugin>

org.apache.maven.plugins
maven jarsigner插件
1.4
签名
target/jfx/app/
**/*jar先生
路径tp密钥库
别名
密码
密码
com.zenjava
javafxmaven插件
8.3.0
jnlp
com.myorg.myapp.launcher.myappLauncher
真的
真的
myapp

为了解决这个问题,我移动了签名验证阶段

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jarsigner-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>signing</id>
                    <goals>
                        <goal>sign</goal>
                        <goal>verify</goal>
                    </goals>
                    <phase>verify</phase>
                    <inherited>true</inherited>
                    <configuration>
                        ...
                    </configuration>
                </execution>
            </executions>
        </plugin>

org.apache.maven.plugins
maven jarsigner插件
1.4
签字
签名
验证
验证
真的
...
然后我像这样调用maven: mvn验证

或者让验证您的默认目标

或者,您可以将javafx maven插件移动到“准备软件包”阶段:


com.zenjava
javafxmaven插件
8.1.0
jnlp
com.myorg.myapp.launcher.myappLauncher
真的
真的
myapp
创建jfxjar
准备包装
构建jar
    <plugin>
        <groupId>com.zenjava</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>8.1.0</version>
        <configuration>
            <bundler>jnlp</bundler>
            <mainClass>com.myorg.myapp.launcher.myappLauncher</mainClass>
            <bundleArguments>
                <jnlp.allPermisions>true</jnlp.allPermisions>
                <jnlp.includeDT>true</jnlp.includeDT>
                <jnlp.outfile>myapp</jnlp.outfile>
            </bundleArguments>
        </configuration>
        <executions>
            <execution>
                <id>create-jfxjar</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>build-jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>