解决maven打包jar 不再支持XX版本 的问题

问题说明

在学习Hadoop的时候,写了一个wordcount,但是在打包成jar的时候,出现了“不再支持版本5,请使用版本6以上”的错误。

之前编译的时候也出现过类似的错误(在我的上一篇博客中),更改了编译版本后正常运行:https://blog.youkuaiyun.com/xsepower/article/details/105238776,所以我先检查了设置中的java版本,发现没有问题。

问题解决

  1. 在网上查找资料后发现(这里参考的文章是:https://yq.aliyun.com/articles/255832),在pom.xml中添加一个依赖就可以了(这里注意使用自己的版本,我的是1.8
<build>
    <pluginManagement>
      <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    </plugins>
   </pluginManagement>
</build>
  1. 另外后面又出现了打包过程非常慢的情况,检查了一下运行状态,发现是从官方的远程仓库在进行下载。再次检查设置中,本地文件里设置远程仓库的settings.xml,重新选择阿里云的一个。

  2. 再次运行,已经非常快地打包完成了。如图所示:
    显示打包成功
    打包好的jar文件

还存在的问题

每次新建一个maven项目,就要重新设置一些东西,难免会有所遗漏,由于时间问题目前还没有找到一劳永逸的修改版本方法。后面有时间了再查查资料设置一下。

### 使用Maven构建工具创建Java项目的JAR文件 当使用Maven作为Java项目的构建工具时,可以通过简单的命令完成编译、测试以及打包操作。执行`mvn clean package`会清理旧的构建产物并重新编译源码,在此过程中如果配置了单元测试,则这些测试会被运行以验证代码质量[^1]。 对于具体的项目而言,假设该项目定义了一个名为`JavaSamples`的构件ID(`artifactId`),那么最终生成的JAR包将会被命名为`JavaSamples.jar`[^2]。为了确保能够成功创建这个JAR文件,POM.xml中的配置至关重要: ```xml <build> <finalName>JavaSamples</finalName> <!-- 插件部分 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <mainClass>com.example.MainApp</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 上述XML片段展示了如何设置`maven-jar-plugin`插件来指定主类路径,这对于希望直接通过命令行执行该JAR的应用程序来说非常有用。需要注意的是,这里假定存在一个位于`com.example`包下的`MainApp.java`作为入口点;实际应用中应替换为自己的全限定名(main-class)。 然而,在某些情况下可能会遇到错误提示无法找到唯一的启动类。例如,当尝试执行带有Spring Boot特性的重打包(repackage)目标时,如果有多个候选的主类而未明确指出哪一个应该被选用的话就会发生这样的情况[^3]。为了避免此类问题的发生,建议在pom.xml里显式声明哪个是主要的应用程序类: ```xml <properties> <start-class>com.xx.api.main.ApiBidMain</start-class> </properties> ``` 或者调整spring boot maven plugin 的配置使其仅考虑特定目录下的类文件作为潜在的启动器选项之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值