利用maven将项目打包成一个可以运行的独立jar包

目标:希望把Java项目打包成一个完整的jar包,可以独立运行,不需要再依赖其他jar包。

我们在用eclipse中mvn创建mvn项目的时候,选择非webapp,会默认的以jar打包形式,如下图:

如果打包成一个完整的jar包,需要在pom.xml中配置一个插件:

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

其中需要注意的是<mainClass>这个tag中要配置成你自己的main函数所在的类。

然后,在项目上右键,选择Run As->Maven Install,这个时候报了一个错,提示我用的是jre而不是jdk。

在Window->preferences中查看

如果没有jdk,需要点击add,添加你安装的jdk路径。

ok,再重新maven install一下,可以了,在target目录下生成了一个jar包,

直接输入命令:java -jar XXX.jar

可以直接运行。

原文地址:https://www.cnblogs.com/fxl-njfu/p/10034396.html

时间: 2024-10-11 03:27:47

利用maven将项目打包成一个可以运行的独立jar包的相关文章

maven把项目打包成jar包后找不到velocity模板的bug

使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/index.vm' at org.apache.velocity.runtime.resource.ResourceManagerImpl.load

SpringBoot之通过Maven将项目打包成ROOT.war-yellowcong

在项目中,我们通过maven的插件,将项目达成war包,然后通过jenkins,自动化部署项目. 核心的maven配置文件,下面这一段pom.xml的配置文件. 将项目打包成ROOT.war <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warName&

利用maven管理项目之POM文件配置

1. 将本地的jar包加入maven dependency <dependency> <groupId>com.ebay.app.raptor.cs.qa</groupId> <artifactId>ecaf</artifactId> <version>0.0.1-SNAPSHOT</version> <systemPath>${project.basedir}/lib/ecaf.jar</systemP

java项目打包在shell中运行

在工作中,有时处需要处理些数据,用java比较方面,比如hbase,但是需要在shell中执行,这样的话,额外的包打进去就比较费劲了,用Maven进行打包非常方便. 首先在项目中pop.xml 写入需要的jar包,以及需要运行的类,如下所示, <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase</artifactId> <version>0.94.5&l

maven 搜索不到想从本地仓库依赖的jar包--重建本地maven仓库索引

问题:有时候本地仓库有相关的jar包,但是在pom.xml中利用工具搜索不到 菜单栏设置显示Maven Respositorise视图:Windows--Show View--Other..   (对话框)Maven--Maven Respositorise 视图出现 选择Local Respositorises-->Local Respository 鼠标右键 Rebuild Index(重建索引) over...

Maven的Pom文件中的隐式依赖导致Jar包冲突的问题

在一次的maven项目中遇到这样一个bug: 编译器没有报什么错,但无法编译,或者能编译,项目启动不了.后来我才发现是以下的问题: 项目中的pom文件中,依赖了webx3.core,而webx3.core又隐式依赖了fasttext相关的jar包,同时我在pom中也引人了fasttext.all, fasttext.all也隐式依赖了fasttext相关的jar包,两类jar包版本还不一样,这样就导致了jar包冲突的问题,牵扯到的pom文件依赖如下: <dependency><group

eclipse上的maven,添加依赖后无法自动下载相应的jar包

Failed to read artifact descriptor for org.quartz-scheduler:quartz-jobs:jar:2.2.3  org.eclipse.aether.resolution. ArtifactDescriptorException: Failed to read artifact descriptor for org.quartz-scheduler:quartz-jobs:j 表示本地仓库缺少jar包. 解决方法: 先查看本地配置是否正确:

maven安装到本地库时如何加入工程本地jar包

maven安装到本地仓库时,需要用到暂无仓库记录的jar包时,可以这样做: 方法一:安装到本地仓库,这种方法最好是别人也能访问的仓库. 1)  mvn install:install-file -Dfile=your_jar_dir\your_jar_file.jar -DgroupId=your_package -DartifactId=your_factId -Dversion=your_version -Dpackaging=jar 2)  注册: <script src="http

android中打包含有Activity以及资源文件的jar包在工程中调用

研究如何将资源以及activity文件大包成jar文件供项目调用,走了不少弯路,也尝试了各种不同方式,都不太理想,最终还是从android的官方文档中找到了完美的解决,这里做一个总结. 最近刚刚发布了一款小应用<诗词大全>,有兴趣的朋友请实用提出您的宝贵意见,谢谢 这篇博文内容是结合android 开发文档的翻译以及个人在开发过程中的具体情况的一个总结 第一步,把普通的android project设置成库项目 库项目也是一个标准的android项目,因此你先创建一个普通的android项目.