修改maven默认字符编码
- maven默认编码为GBK
注:配好MAVEN_HOME的环境变量后,在运行cmd.
打开cmd 运行mvn -v命令即可.
修改UTF-8为默认编码. - 设置系统环境变量
变量名MAVEN_OPTS
变量值-Dfile.encoding=UTF-8
还可以添加其他配置,比如: -Xms256m -Xmx512m
idea中maven插件执行命令时,输出乱码
解决方案
 maven 运行时vm文件编码设置为本地windows默认编码.解决问题.
pom.xml properties可以设置哪些默认配置
 在Maven的pom.xml文件中,用于定义全局变量,在POM中通过${property_name}的形式引用变量的值。
POM中的全局变量可以分为如下5种类型:
- 系统Shell的环境变量env.property_name,如${env.PATH}表示引用当前系统的PATH变量值,注意这里的PATH必须都是大写。
- Java System Properties,即Java属性文件,如${java.home}
- project.property_name,直接引用POM中的元素值,如${project.version}表示引用1.0中的1.0
- settings.property_name,直接引用settings.xml中的元素值,如${settings.offline}表示引用false中的false
- property_name,直接访问中已经定义的变量值,如${myVar}表示引用myvalue中的myvalue
pom.xml 配置maven-source-plugin
 maven-source-plugin 是 Maven 插件,用于将项目的源代码打包成 JAR 包。该插件可以将项目中的 Java 源代码、资源文件和 JAR 包一起打包,以便于分发和部署。打成的jar后后会带-source字样;之后通过deploy就可以将改包发布到仓库中;仓库中有这个包在idea中才可以点击下载源码,查看注释和源码。
配置
<build>
<plugins>
<!--生成source jar包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<!--install、deploy时会上传源码jar包到仓库,默认是true-->
<attach>true</attach>
</configuration>
<executions>
<execution>
<id>attach-source</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
pom.xml 配置maven-javadoc-plugin
maven-javadoc-plugin 是 Maven 插件,用于生成 Java 类文档。它可以将 Java 类文档生成为 HTML、XML 或 JAR 包,以便于在网页上展示或打包到应用程序中。
具体来说,maven-javadoc-plugin 插件可以按照以下步骤工作:
- 编译 Java 类文件为 .class 文件。
- 将 .class 文件转换为 JavaDoc 格式。maven-javadoc-plugin 会将 .class 文件中的注释转换为 JavaDoc 注释,并生成相应的文档。
- 将生成的 JavaDoc 注释合并到相应的 HTML、XML 或 JAR 包中,以便于在网页上展示或打包到应用程序中。
 使用 maven-javadoc-plugin 插件可以提高代码的可读性和可维护性,同时也有助于提高应用程序的可靠性和可扩展性。它可以帮助开发人员更方便地向用户传递类似“这个类有以下方法:”这样的信息,而无需提供长长的文档字符串。
配置
<properties>
<!--解决javadoc时doclint的错误-->
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
<build>
<plugins>
<!--生成doc jar包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 解决控制台乱码 -->
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<javadocExecutable>C:\Program Files\Java\jdk1.8.0_181\bin\javadoc</javadocExecutable>
</configuration>
</plugin>
</plugins>
</build>
pom.xml 中phase标签含义
pom.xml 中 phase 标签用于指定构建生命周期中的不同阶段,每个 phase 都有自己的作用和目标。以下是 phase 标签的含义:
- initialize:初始化阶段,在此阶段中,Maven 会查找项目中的所有模块,并将它们添加到项目的依赖项数据库中。
- prepare:准备阶段,在此阶段中,Maven 会对项目中的模块进行预处理,例如,它会检查模块是否存在、是否已编译等。
- build:构建阶段,在此阶段中,Maven 会根据 pom.xml 文件中的配置,编译、打包和运行项目中的模块。
- test:测试阶段,在此阶段中,Maven 会对项目中的测试用例进行编写、执行和调试。
- clean:清理阶段,在此阶段中,Maven会删除项目中无用的文件和目录,释放内存。
- install:安装阶段,在此阶段中,Maven 会将项目打包成可执行的 JAR包,并将其安装到指定的位置。
- end:结束阶段,在此阶段中,Maven 会关闭项目的依赖项数据库,并清理未使用的文件和目录。
在 pom.xml 文件中,可以使用 标签来指定一个或多个 phase,并为每个 phase 指定一个目标。例如,可以为 initialize 和 clean 指定不同的目标,如下所示:
<dependencies>
...
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>version</version>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>prepare</phase>
<goals>
<goal>attach-sources</goal>
</goals>
</execution>
</executions>
<configuration>
<attach>true</attach>
<sources>
<source>src/main/java</source>
<source>src/main/resources</source>
</sources>
</configuration>
</plugin>
</plugins>
</build>
在这个例子中,initialize 和 clean 都指定了相同的目标 prepare,但是为每个 phase 指定了不同的目标。这样做可以让构建生命周期更加清晰和可管理。