- 创建 Maven 项目:
shell
mvn archetype:generate -DgroupId=com.ivandu -DartifactId=cmaimms -DarchetypeArtifactImaven-archetype-quickstart -DinteractiveMode=false
命令解释:
- -DgroupId 组织Id(项目包名)。
- -DartifactId ArtifactId(项目名称或者模块名称)。
- -DarchetypeArtifactId 项目骨架。
- -DinteractiveMode 是否使用交互模式。
- "File encoding has not been set, using platform encoding UTF-8" 问题解决:
IDE 字符编码设置为:UTF-8, IDEA 自定义环境加入:
properties
-Dfile.encoding=utf-8
项目 pom.xml 加入:
xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
- "No goals have been specified for this build." 问题解决:
项目 pom.xml 加入:
xml
<build>
<defaultGoal>compile</defaultGoal>
</build>
- "[ERROR] 不再支持源选项 5。请使用 6 或更高版本。[ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。" 问题解决:
xml
<properties>
<java.version>11</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
- mvn spring-boot:run 报 "No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?" 错,解决如下:
在项目 pom.xml build 节点内加入:
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>D:\Tools\Java\jdk-11.0.12.7-hotspot\bin\javac.exe</executable>
</configuration>
</plugin>
- 一些常用配置:
xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
- 指定 JDK 版本、字符集配置:
xml
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</profile>
- Maven 阿里云公共仓库:
xml
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
- 无法读取配置文件,可以加入如下内容:
xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
- Maven scope 元素用于指定依赖库起作用的范围。该元素可指定如下值:
➢ compile:默认的范围,编译、测试、打包时需要。
➢ provided:表示容器会在运行时提供。
➢ runtime:表示编译时不需要,但测试和运行时需要,最终打包时会包含进来。
➢ test:只用于测试阶段。
➢ system:与provided类似,但要求该JAR是系统自带的。
11、Java执行Jar包报"jar中没有主清单属性"的解决方法:
xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cxwn</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<url>https://maven.apache.org</url>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<executable>true</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>