maven 将Sping Boot 项目汇出为具有相依性的JAR

kpbwa7wx  于 2022-12-11  发布在  Maven
关注(0)|答案(1)|浏览(154)

我有一个Sping Boot 项目,我想将它用作另一个项目中的依赖项。
首先,在我的pom.xml中,我将packaging标记设置为jar。但是,这会产生一个带有BOOT-INF文件夹的jar,它无法导入到其他项目中。为了解决这个问题,我添加了以下行:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.4.2</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
    <executions>
      <execution>
        <id>make-assembly</id> <!-- this is used for inheritance merges -->
        <phase>package</phase> <!-- bind to the packaging phase -->
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

现在,当我运行mvn clean package时,会生成两个jar:
1.可以正确导入但缺少依赖性的jar
1.另一个包含BOOT-INF\lib文件夹的jar(包含依赖项)
我想让它这样的第一个jar也包含库。

7d7tgy0s

7d7tgy0s1#

请将此添加到pom.xml中,然后重试。

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

注意--不需要添加一个带有main方法的类,所以可以删除一个类似的类,就像这样。

@SpringBootApplication
public class DemoApplication{

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class);
    }

}

相关问题