描述:写了一个RPC的starter包
执行命令后
mvn install
点击引入依赖无反应
手动输入对应的包显示找不到,但是在Maven可以找到
问题在于pom.xml文件,正常打包的maven文件应该可以显示出来,但是由于未删除spring-boot-maven-plugin。
spring-boot-maven-plugin
主要用于 Spring Boot 可执行 JAR(fat jar) 的打包和启动,它会将所有依赖合并到一个 JAR 文件中,并生成 META-INF/MANIFEST.MF
,使得 java -jar xxx.jar
可以直接运行。
但 Spring Boot Starter(即 starter
依赖)只是一个 普通的依赖库(library JAR),它不需要也不应该是 可执行 JAR,
原来的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- Project Descriptor --><modelVersion>4.0.0</modelVersion><groupId>com.heartunderblade</groupId><artifactId>starter</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>heartunderblade-rpc-springboot-starter</name><description>Spring Boot Starter for Heartunderblade RPC</description><!-- Properties Section --><properties><java.version>17</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version></properties><!-- Dependencies Section --><dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Configuration Processor (for @ConfigurationProperties) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- Custom Heartunderblade RPC Core --><dependency><groupId>com.heartunderblade.rpc</groupId><artifactId>heartunderblade-rpc-core</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- Spring Boot Testing --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!-- Dependency Management Section --><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- Build Section --><build><plugins><!-- Compiler Plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.10.1</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>UTF-8</encoding></configuration></plugin><!-- Spring Boot Maven Plugin --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build><!-- Repositories (if needed for custom dependencies) --><repositories><repository><id>central</id><url>https://repo.maven.apache.org/maven2</url></repository><repository><id>snapshot-repo</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</project>
移除后pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- Project Descriptor --><modelVersion>4.0.0</modelVersion><groupId>com.heartunderblade</groupId><artifactId>starter</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>heartunderblade-rpc-springboot-starter</name><description>Spring Boot Starter for Heartunderblade RPC</description><!-- Properties Section --><properties><java.version>17</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version></properties><!-- Dependencies Section --><dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Configuration Processor (for @ConfigurationProperties) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- Custom Heartunderblade RPC Core --><dependency><groupId>com.heartunderblade.rpc</groupId><artifactId>heartunderblade-rpc-core</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- Spring Boot Testing --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!-- Dependency Management Section --><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- Build Section --><build><plugins><!-- Compiler Plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.10.1</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build><!-- Repositories (if needed for custom dependencies) --><repositories><repository><id>central</id><url>https://repo.maven.apache.org/maven2</url></repository><repository><id>snapshot-repo</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</project>
再重新执行mvn install即可成功引入