java后端自学错误总结
- 一.项目打包报错
- 2.项目打包之后运行报错
- 二.项目运行报错
一.项目打包报错
javac: �Ҳ����ļ�: E:\xx\xx\xx\docer-xx\src\main\java\xx\xx\xx\xx\xx\xx.java
�÷�: javac <options> <source files>
-help �����г����ܵ�ѡ��
当时遇见了这个报错整个人都懵逼了打包报错了并且乱码
现在过来人的经验
1.排查当前项目路径是不是包括中文,如果是有中文会报错,这个报错可以考虑在(下面都是以idea举例)File->Setting->Build,Execution,Deployment->Build Tools->Maven->Runner
下面的VM Options后面添加上:-DarchetypeCatalog=internal -Dfile.encoding=GBK
后面的排查与上面的编码无关
2.项目打包之后运行报错
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.5.15</version><configuration><mainClass>com.xxx.xxx</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
报错了
修改方式:将skip标签里面的内容改成false
原因: skip标签元素通常用于控制插件的某个目标(goal)是否应该被执行.对于spring-boot-maven-plugin来说,元素用于决定是否跳过插件的默认目标(通常是repackage),该目标会将你的应用打包成一个可执行的jar或war文件。
一.当将设置为true时,Spring Boot Maven插件的默认目标(repackage)会被跳过,这意味着Maven不会创建一个包含所有依赖项的可执行jar或war文件。因此,尽管你的项目可能构建成功(即编译、测试等步骤都通过了),但是最终生成的jar或war文件将不是可执行的,因为它不包含Spring Boot所需的额外配置和依赖项。
二.相反,当你将设置为false(或者根本不在配置中指定它,因为默认值就是false)时,Spring Boot Maven插件的repackage目标会被执行。这个目标会:
1.使用Maven的jar或war插件(取决于你的设置)创建一个普通的jar或war文件。
2.解压这个普通的jar或war文件到一个临时目录。
3.将所有依赖项(包括你的应用代码)添加到这个临时目录中。
4.重新打包这个临时目录为一个可执行的jar或war文件,该文件包含一个嵌入式的Web服务器(如果你是一个web应用)和所有必需的依赖项。
这样,当你运行java -jar target/your-artifact-name.jar时,你的Spring Boot应用就可以正确启动了,因为它包含了所有必需的类和依赖项。