maven 构建能够运行的jar文件

用maven来构建过jar文件的朋友可能知道,默认情况下,maven因为不会给我们添加我们项目中需要的依赖,以及不会在MANIFEST.MF文件中添加Main-Class这一条目,造成我们构建完成的jar文件不能通过java -jar命令而直接执行,必须通过java -cp命令,指定类路径来执行.这无疑是非常麻烦的.

Google了之后,找到了解决问题的方案.在pom.xml文件中,添加下面的snippet:

    <build>
        <plugins>
            <!-- any other plugins -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.projecthome.LogAnalyserStorm</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

把上面的snippet中的mainClass替换成你自己的主类的路径.

然后,就可以通过java -jar命令来执行构建好的jar文件了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,749评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,101评论 6 342
  • 我一直想一个问题,结婚前到底该不该发生关系?你们一定好奇为什么,其实我和老公在结婚前一直都很相爱,但后来结婚后,他...
    锦瑟依依ucck阅读 11,077评论 6 0
  • 为爱发声 —为11.24温暖包行动而书 我们总是在玲琅满目的衣柜中彷徨 抱怨自己缺少一件真正美丽的衣裳 我们总是在...
    体面事物所的纪先生阅读 3,456评论 0 0
  • 这个世界在我们看的见和看不见的地方 总有人以不同的方式活着 其实有时候无能为力也是一种能力 一个人久了 别人的陪伴...
    Ansirou阅读 1,495评论 2 6