Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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插件maven plugin到底做了什么?使用或不使用这个插件有什么区别?_Java_Spring_Maven_Pom.xml_Maven Jetty Plugin - Fatal编程技术网

Java maven jar插件maven plugin到底做了什么?使用或不使用这个插件有什么区别?

Java maven jar插件maven plugin到底做了什么?使用或不使用这个插件有什么区别?,java,spring,maven,pom.xml,maven-jetty-plugin,Java,Spring,Maven,Pom.xml,Maven Jetty Plugin,我正在开发一个简单的Spring控制台应用程序(这是一个批处理,有一个带有经典main()方法()的类),我对pom.xmlMaven文件有以下疑问。此文件仅包含工作所需的Spring依赖项。当我运行Maven installstation时,它会将相关的.jar编译应用程序生成到我的项目的目标目录中 我在寻找另一个类似的老项目,我过去曾参与过这个项目,现在我可以在它的pom.xml中找到这个maven jar插件插件: <plugin> <groupId>org

我正在开发一个简单的Spring控制台应用程序(这是一个批处理,有一个带有经典main()方法()的类),我对pom.xmlMaven文件有以下疑问。此文件仅包含工作所需的Spring依赖项。当我运行Maven installstation时,它会将相关的.jar编译应用程序生成到我的项目的目标目录中

我在寻找另一个类似的老项目,我过去曾参与过这个项目,现在我可以在它的pom.xml中找到这个maven jar插件插件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.myCompany.main.MainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

org.apache.maven.plugins
maven jar插件
com.myCompany.main.MainClass

因此,这个maven-jar插件确切地做了什么(在不使用它的情况下,maven安装station会生成一个编译后的.jar文件)。使用或不使用此插件有什么区别?

jar插件允许我们定义默认清单文件。使用该选项,位于${project.build.outputDirectory}/META-INF/MANIFEST.MF的文件将成为jar中的清单文件 maven jar插件提供了构建jars文件的功能,如果您将项目打包为jar文件,maven将隐式调用该插件。我们不需要在pom.xml中定义它,它将在maven需要时下载并执行。因此,无论您是否在pom中使用它,它都会在需要时由maven自动加载

请参阅此链接以获得更好的理解

Maven Jar插件负责配置项目主类的位置,以便将其添加到Jar的清单文件中。如果在尝试运行jar文件时未包含此插件,则会出现以下错误:

 Exception in thread "main" java.lang.NoClassDefFoundError 
无论您是否在其他地方添加了此行:

<mainClass>yourapp.Mainclass</mainClass>
yourapp.main类
正确的方法是在maven jar插件中添加上述行