Files
2026-03-01 01:43:46 +08:00

182 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# POM 文件
## `<parent>` 元素
- 用途:`<parent>` 元素用于继承父 POM 的配置。通过定义 `<parent>`,子项目可以继承父 POM 中的插件、依赖管理、属性、构建配置等。
- 应用场景:适用于多模块项目(multi-module project),其中有一个通用的父项目提供共享的配置和依赖。
- 继承特性:子项目会继承父项目的依赖管理(dependencyManagement)、插件管理(pluginManagement)等内容,但不会自动继承 `<dependencies>` 中的依赖。
- 示例:
```xml
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
</parent>
```
## `<dependency>` 元素
- 用途:`<dependency>` 元素用于声明当前项目直接依赖的外部库或模块。Maven 会根据这些依赖项自动下载相关的 JAR 文件。
- 应用场景:适用于项目需要使用外部库或其他模块时,直接声明依赖。
- 继承特性:它不会继承,而是直接在当前项目中生效。
- 示例:
```xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
```
# Settings 文件
## 阿里云公共仓库
```xml
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
```
# 私服搭建(Docker
## 拉取并运行 Nexus 容器
1. **创建一个目录来存储 Nexus 数据**
```bash
mkdir -p /opt/nexus-data
chmod -R 777 /opt/nexus-data
ls -ld /opt/nexus-data
```
1. **拉取并运行 Nexus Docker 镜像**
```bash
docker run -d -p 8081:8081 --name nexus --restart unless-stopped -v /opt/nexus-data:/nexus-data sonatype/nexus3
```
- `-d` 选项表示以后台模式运行容器。
- `-p 8081:8081` 将容器的 8081 端口映射到主机的 8081 端口。
- `--name nexus` 给容器命名为 `nexus`
- `-v ~/nexus-data:/nexus-data` 将主机上的目录 `~/nexus-data` 挂载到容器内的 `/nexus-data`,用于持久化数据。
## 访问 Nexus
Nexus 启动后,可以通过浏览器访问 `http://<your-ip>:8081`。初始页面可能需要一段时间加载,因为 Nexus 需要一些时间来初始化数据。
## 配置 Nexus
1. **登录**:默认管理员的用户名是 `admin`。初始密码可以在挂载数据卷的 `admin.password` 文件中找到:
```bash
cat ~/nexus-data/admin.password
```
2. **初始设置**:首次登录后,根据向导完成基本设置。
## 个人测试配置
```
admin
tianzhuo123.
tianzhuo
tianzhuo123.
```
# 问题记录
```log
08:20:05 [] [] [] [] [main] ERROR org.springframework.boot.SpringApplication 870 reportFailure - Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.28.jar:5.3.28]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_431]
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:937) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.28.jar:5.3.28]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.15.jar:2.5.15]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780) ~[spring-boot-2.5.15.jar:2.5.15]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:453) ~[spring-boot-2.5.15.jar:2.5.15]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:343) ~[spring-boot-2.5.15.jar:2.5.15]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1370) ~[spring-boot-2.5.15.jar:2.5.15]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1359) ~[spring-boot-2.5.15.jar:2.5.15]
at com.cmcc.cdn.platform.BootApplication.main(BootApplication.java:57) ~[classes/:?]
Caused by: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:1.8.0_431]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_431]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) ~[?:1.8.0_431]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_431]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_431]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_431]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:359) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:1.8.0_431]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_431]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) ~[?:1.8.0_431]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_431]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_431]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_431]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:359) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:1.8.0_431]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_431]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) ~[?:1.8.0_431]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_431]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_431]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_431]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_431]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:359) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_431]
at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3512) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3516) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2169) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2080) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache.get(LocalCache.java:4012) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4035) ~[guava-32.1.2-jre.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5013) ~[guava-32.1.2-jre.jar:?]
at springfox.documentation.schema.CachingModelProvider.modelFor(CachingModelProvider.java:59) ~[springfox-schema-2.9.2.jar:null]
at springfox.documentation.spring.web.scanners.ApiModelReader.read(ApiModelReader.java:69) ~[springfox-spring-web-2.9.2.jar:null]
at springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:133) ~[springfox-spring-web-2.9.2.jar:null]
at springfox.documentation.spring.web.scanners.ApiDocumentationScanner.scan(ApiDocumentationScanner.java:71) ~[springfox-spring-web-2.9.2.jar:null]
at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.scanDocumentation(DocumentationPluginsBootstrapper.java:101) ~[springfox-spring-web-2.9.2.jar:null]
at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:167) ~[springfox-spring-web-2.9.2.jar:null]
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.28.jar:5.3.28]
... 14 more
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.internal.InternalFutureFailureAccess
at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_431]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:359) ~[?:1.8.0_431]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_431]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_431]
```
```
因为拉下来的 POM 存在问题。
```
![](../../attachment/images-paste/image-20241209182342431.png)
可以把中央镜像仓库放在前边。优先中央镜像。