Maven-遇到的问题
参考文献
Maven
遇到的问题
maven pom.xml
中repository
标签不生效
-
配置错误:请确认
<repository>
标签中的 URL 和仓库 ID 是否正确,并且 Maven 能够访问该 URL.如果 URL 不正确或无法访问,则 Maven 无法从该仓库中下载依赖项. -
依赖项已经存在:如果您的项目中已经存在所需的依赖项,那么即使您将
<repository>
标签添加到pom.xml
文件中,Maven 也不会从该仓库中下载依赖项.这是因为 Maven 会优先使用本地仓库和缓存,以提高构建速度和效率.您可以使用-U
标志强制 Maven 更新依赖项,以便它从您指定的仓库中下载最新的版本. -
Maven 设置覆盖:如果您在
settings.xml
文件中配置了<mirrors>
标签或其他仓库相关的设置,则可能会覆盖pom.xml
文件中的<repository>
标签设置.请检查您的settings.xml
文件并确认是否有任何与仓库相关的设置可能会影响 Maven 的行为. -
若仍然无法解决问题,请尝试在命令行中运行
mvn clean install -X
命令,以启用详细的日志记录并获取更多信息.
Maven
多模块打包问题
问题描述
-
项目结构如下
1
2
3
4
5
6
7
8project
|- business (SpringBoot项目)
|- src
|- pom.xml
|- common (公共工具项目)
|- src
|- pom.xml
|- pom.xml -
父级
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/>
</parent>
<groupId>cn.holelin</groupId>
<artifactId>project</artifactId>
<version>1.0.0.0</version>
<packaging>pom</packaging>
<name>project</name>
<modules>
<module>common</module>
<module>business</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<!-- 略 -->
</properties>
<dependencyManagement>
<dependencies>
<!-- 略 -->
</dependencies>
</dependencyManagement>
<dependencies>
<!-- 略 -->
</dependencies>
<repositories>
<!-- 略 -->
</repositories>
</project> -
common
的pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<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>
<parent>
<groupId>cn.holelin</groupId>
<artifactId>project</artifactId>
<version>1.0.0.0</version>
</parent>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<name>common</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 略 -->
</dependencies>
</project> -
business
的pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29<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>
<parent>
<groupId>cn.holelin</groupId>
<artifactId>project</artifactId>
<version>1.0.0.0</version>
</parent>
<artifactId>business</artifactId>
<packaging>jar</packaging>
<name>business</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<common.version>1.0.0.0</common.version>
</properties>
<dependencies>
<dependency>
<groupId>cn.holelin</groupId>
<artifactId>common</artifactId>
<version>${common.version}</version>
</dependency>
<!-- 略 -->
</dependencies>
</project> -
使用
mvn clean package -DskipTests
打包
问题
- 找不到启动类以及打包生成的
business-1.0.0.0.jar
并没有引入common-1.0.0.0.jar
,导致business
项目启动报错,找不到common
中的类
解决方法
-
在
SpringBoot
项目中增加org.springframework.boot:spring-boot-maven-plugin
并指定启动类1
2
3
4
5
6
7
8
9
10
11
12
13<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.med3d.athena.AthenaApplication</mainClass>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build> -
完整
business
的pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41<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>
<parent>
<groupId>cn.holelin</groupId>
<artifactId>project</artifactId>
<version>1.0.0.0</version>
</parent>
<artifactId>business</artifactId>
<packaging>jar</packaging>
<name>business</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<common.version>1.0.0.0</common.version>
</properties>
<dependencies>
<dependency>
<groupId>cn.holelin</groupId>
<artifactId>common</artifactId>
<version>${common.version}</version>
</dependency>
<!-- 略 -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.holelin.Application</mainClass>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
</project>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!