Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证maven jar插件中的manifest.mainClass_Java_Maven_Build Automation_Maven Jar Plugin - Fatal编程技术网

Java 验证maven jar插件中的manifest.mainClass

Java 验证maven jar插件中的manifest.mainClass,java,maven,build-automation,maven-jar-plugin,Java,Maven,Build Automation,Maven Jar Plugin,是否有方法验证(甚至使用另一个插件)为maven jar插件指定的mainClass是否为有效类,以及是否有一个public static void main(String[]argv)方法更好 重构后,这一点很常见,我希望避免这种情况,并在verify生命周期阶段进行检查。您可以使用及其目标来执行以下命令: java -jar target\project.jar 它确实会根据清单文件执行它(因此执行配置的main方法),或者失败 因此,您可以将以下(示例)配置添加到验证阶段: <bu

是否有方法验证(甚至使用另一个插件)为
maven jar插件
指定的
mainClass
是否为有效类,以及是否有一个
public static void main(String[]argv)
方法更好

重构后,这一点很常见,我希望避免这种情况,并在
verify
生命周期阶段进行检查。

您可以使用及其目标来执行以下命令:

java -jar target\project.jar
它确实会根据清单文件执行它(因此执行配置的main方法),或者失败

因此,您可以将以下(示例)配置添加到
验证
阶段:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.sample.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4.0</version>
            <executions>
                <execution>
                    <id>check-main</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <executable>java</executable>
                        <arguments>
                            <argument>-jar</argument>
                            <argument>${project.build.directory}/${project.build.finalName}.jar</argument>
                            <argument>sanityCheck</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
请注意,上面的信息与您所要查找的内容基本相同:

错误:在com.sample.Main类中找不到Main方法,请将Main方法定义为:
公共静态void main(字符串[]args)

[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ simple ---   
[INFO] Building jar: C:\Development\workspace-mars\simple\target\simple-0.0.1-SNAPSHOT.jar   
[INFO]   
[INFO] --- exec-maven-plugin:1.4.0:exec (check-main) @ simple ---   
Error: Main method not found in class com.sample.Main, please define the main method as:   
   public static void main(String[] args)   
[INFO] ------------------------------------------------------------------------  
[INFO] BUILD FAILURE   
[INFO] ------------------------------------------------------------------------