Maven-Jar-Plugin Maven插件到底是什么?使用或不使用此插件有什么区别



我正在处理一个简单的弹簧控制台应用程序(这是一个带有经典main((方法((方法的类的批次,我对 pom有以下疑问.xml maven文件。该文件仅包含工作所需的弹簧依赖性。当我运行 Maven install statment时,它会生成相关的 .jar 编译为项目的 target 目录。

我正在寻找过去在过去的另一个类似的旧项目,并在其 pom.xml 中找到了这一点,我可以找到此 maven-jar-plugin plugin:

<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>

那么,此 maven-jar-plugin 恰好做(也不使用它 maven install install statment生成编译 .jar> .jar 文件(。使用此插件有什么区别?

JAR插件允许我们定义默认清单文件。使用该选项,位于$ {project.build.outputdirectory}/meta-inf/manifest.mf的文件将是JAR中的清单文件Maven Jar插件提供了构建JARS文件的功能,如果您将项目定义为JAR文件,Maven将暗中致电该插件。我们不需要在pom.xml中定义它,它将在Maven需要时下载和执行。因此,您是否在POM内使用此功能都无关紧要,如果需要,它将自动加载Maven。

请参阅此链接以获得更好的承诺https://examples.javacodegeeks.com/enterprise-java/maven/maven-jar-plugin-example/

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

 Exception in thread "main" java.lang.NoClassDefFoundError 

无论您是否在其他地方添加了此行:

<mainClass>yourapp.Mainclass</mainClass>

正确的方法是在Maven-Jar-Plugin中添加上面的行。

最新更新