vault backup: 2026-11-07 16:33:44

This commit is contained in:
cheney
2026-11-07 16:33:55 +08:00
commit 7015312702
1208 changed files with 132432 additions and 0 deletions
@@ -0,0 +1,191 @@
## 导出所有依赖
Maven 提供了几种方法来导出项目的所有依赖:
### 1. 使用 dependency:copy-dependencies 插件
mvn dependency:copy-dependencies -DoutputDirectory=target/lib
这会将所有依赖复制到 `target/lib` 目录中。
### 2. 使用 dependency:tree 生成依赖树
mvn dependency:tree > dependencies.txt
这会生成一个依赖树文本文件,显示所有传递依赖。
### 3. 使用 assembly 插件创建包含所有依赖的 JAR
在 pom.xml 中添加:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后运行 `mvn package`,会生成一个包含所有依赖的 JAR 文件。
## 查看和导出 Maven 插件
### 1. 查看项目中使用的所有插件
mvn help:effective-pom
这会显示有效 POM,包含所有插件配置。
### 2. 列出所有可用的插件
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-help-plugin
### 3. 导出插件信息
可以将有效 POM 输出到文件:
mvn help:effective-pom -Doutput=effective-pom.xml
## 高级用法
### 导出依赖为 classpath 格式
mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt
### 排除特定范围的依赖
mvn dependency:copy-dependencies -DoutputDirectory=lib -DexcludeScope=provided
### 只导出特定范围的依赖
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=runtime
这些命令可以帮助你管理 Maven 项目的依赖和插件,便于部署或分析项目结构。
如何将 maven 插件依赖的 jar 包导出,因为我想要到离线环境进行编译
# 导出 Maven 插件及其依赖到离线环境
要将 Maven 插件及其依赖导出以便在离线环境中使用,你需要以下几个步骤:
## 1. 下载所有项目依赖和插件依赖
### 方法一:使用 dependency:go-offline 插件
mvn dependency:go-offline
这个命令会下载项目所有依赖和插件依赖到本地仓库(默认在 `~/.m2/repository`),但不会复制到项目目录。
### 方法二:完整下载所有依赖
mvn clean compile dependency:resolve-plugins
这会下载编译所需的依赖和插件。
## 2. 将本地仓库打包
tar -czvf maven-repo.tar.gz ~/.m2/repository
然后将这个压缩包复制到离线环境中。
## 3. 在离线环境中设置
1. 解压仓库包到离线机器的 `~/.m2/repository` 目录
2. 在离线环境中使用 Maven 时添加 `-o` 参数(offline 模式):
mvn -o clean package
## 4. 更精确的插件依赖导出方法
如果你只需要特定插件的依赖:
### 创建插件依赖导出配置
在 pom.xml 中添加:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>copy-plugin-dependencies</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<includeTypes>jar</includeTypes>
<outputDirectory>${project.build.directory}/plugin-dependencies</outputDirectory>
<excludeTransitive>false</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后运行:
mvn dependency:copy-dependencies
## 5. 完整离线环境准备方案
1. 在有网络的环境中:
# 下载所有依赖
mvn dependency:go-offline
# 下载所有插件
mvn dependency:resolve-plugins
# 打包本地仓库
tar -czvf maven-repo.tar.gz ~/.m2/repository
2. 在离线环境中:
# 解压仓库
mkdir -p ~/.m2
tar -xzvf maven-repo.tar.gz -C ~/.m2
# 使用离线模式构建
mvn -o clean package
## 注意事项
1. 确保在线和离线环境使用相同版本的 Maven
2. 检查是否有系统范围的依赖(如通过 JAVA_HOME 设置的依赖)
3. 考虑使用相同的操作系统环境,避免平台特定问题
4. 对于多模块项目,需要确保所有模块的依赖都已下载
这种方法可以确保你在离线环境中拥有所有必要的插件和依赖,使构建过程能够顺利完成。
@@ -0,0 +1,11 @@
在 IDEA 中为 Maven 设置 `JAVA_TOOL_OPTIONS` 环境变量,强制 JVM 使用 UTF-8 编码[-5](https://juejin.cn/post/7576518316135759923)[-7](https://blog.csdn.net/vistaed/article/details/160566415)。这个方法对 IDEA 2025.2+ 版本最有效,只需设置一次,全局生效[-11](https://blog.csdn.net/m0_55762904/article/details/153689615)。
1. 打开 IDEA 设置 (`Ctrl + Alt + S`)。
2. 导航到 `Build, Execution, Deployment` → `Build Tools` → `Maven` → `Runner`。
3. 找到 **`Environment variables`** 字段,点击右侧的文件夹图标或输入框[-7](https://blog.csdn.net/vistaed/article/details/160566415)。
4. 添加环境变量,设置 `Name` 为 `JAVA_TOOL_OPTIONS`,`Value` 为 `-Dfile.encoding=UTF-8`[-5](https://juejin.cn/post/7576518316135759923)[-7](https://blog.csdn.net/vistaed/article/details/160566415)。
5. 点击 `OK` 保存设置,然后重新执行 Maven 编译。