• 使用Mavne生成可以执行的jar文件


    到目前为之,还没有运行HelloWorld的项目,不要忘了HelloWorld类可是有一个main方法的。使用mvn clean install命令默认生成的jar 包是不能直接运行的。因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INFO/MANIFEST.MF文件,将无法看到Main-Class一行)。为了生成可以执行的jar文件,需要借助maven-shade-plugin,配置该插件如下:

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>1.2.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <transformers>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <mainClass>HelloWorld</mainClass>
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    plugin元素在POM中的相对位置在<project><build><plugins>下面。我们配置了mainClass为:HelloWorld,项目打包时会将该信息放到MANIFEST中。现在执行mvn clean install,待构建完成后打开target/目录,可以看到hellow-world-1.0-SNAPSHOT.jar,这个jar文件带有Main-Class信息的可运行jar,打开hellow-world-1.0-SNAPSHOT.jar的META-INFO/MANIFEST.MF,可以看到它包含这一行信息:

    Main-Class: HelloWorld

    现在在项目根目录中执行该jar文件:

    java -jar hello-world-1.0-SNAPSHOT.jar

    输出:

    Hello World!!
  • 相关阅读:
    qml: QtCharts模块得使用(数据整合和显示) ---- <二>
    qml: QtCharts模块的使用(基本配置)------<一>
    【转载】Qt之JSON生成与解析
    qml: 支持的基本类型
    opencv: 基本知识;
    qml: 模块定义与使用
    Android studio开发中遇到的错误
    阅读笔记——《人月神话》5
    Android studio Adapter基础
    Android studio Date & Time组件2
  • 原文地址:https://www.cnblogs.com/frankyou/p/6197545.html
Copyright © 2020-2023  润新知