Maven相关知识

469 阅读1分钟

一些技巧

1、替换依赖包中的某个依赖的方法

参考链接 修改 maven 依赖的子依赖
先排除包内要替换的依赖,再添加替换的依赖

image.png

未解决问题: 替换别人的jar包中的某个类的代码

打包遇到的一些问题

1、导出的jar文件不显示图片

以我的项目为例说一下:
我的项目是在和src同一级创建一个images文件夹,图片都在这里面。生成jar文件打开后不显示图片。
当我在jar文件旁边创建一个images文件夹(如下图),里面放图片。再次运行jar就可以显示图片了。

image.png

2、maven程序包com.sun.xml.internal.fastinfoset.stax.events不存在

1)、pom.xml 文件添加如下插件
2)、删除target文件
3)、启动项目
4)、对项目进行package打包

<build>
    <defaultGoal>compile</defaultGoal>
    <!--定义资源路径-->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*/*.*</include>
                <include>*.*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.5.6</version>
            <configuration>
                <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <warName>${project.artifactId}</warName>
            </configuration>
        </plugin>
    </plugins>
</build>
3、org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0\

这是因为SpringBoot 3.0 发布,SpringBoot 3.0 最低支持 jdk17,所以这个 maven plugin 使用的也是最低 17 版本编译的,打包插件下面的版本对应的是springboot的版本,现在是3.1.0对应的是springboot3的版本。但是项目使用的是JDK1.8所以会不支持,只需要将version替换成当前springboot的版本即可,本人的是2.5.6

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.6</version>
    <relativePath/> 
</parent>
<plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>3.1.0</version>
</plugin>
4、# [ERROR] Failed to execute goal maven-resources-plugin:3.2.0:resources Input length = 1

插件添加

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-resources-plugin</artifactId>
	<version>3.2.0</version>
	<configuration>
		<encoding>UTF-8</encoding>
	</configuration>
</plugin>

还报错可以试试版本降为3.1.0

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>