我们可以在另一个项目中添加可执行jar文件作为依赖项吗?

时间:2020-05-01 13:19:53

标签: java spring-boot build pom.xml maven-dependency

我已经创建了一个Spring Boot项目(项目A),并且已经以maven install的方式运行了构建。这已在.m2文件夹中创建了一个可执行jar文件。

我想将上述项目用作其他两个Spring Boot项目(Project B和Project C)的依赖项。我在项目B的pom.xml中添加了项目A的依赖项。但是,该依赖项作为文件夹包含在Maven依赖项下。如果在本地项目资源管理器中打开了项目A,则只能从项目A导入所需的类。如果我关闭Project A,则依赖关系无法解决,并且会引发错误。

在构建第一个项目(A)时我做错了什么吗?以下是项目A的pom.xml中的构建标记。我们可以添加可执行文件作为依赖项吗?

<build>
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <includes>
                <include>**</include>
            </includes>
        </resource>
    </resources>
    <finalName>${project.artifactId}-${project.version}${build.number}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

请帮助我了解这里是否有问题。在此先感谢:)

1 个答案:

答案 0 :(得分:0)

默认情况下,每个Spring Boot应用程序都继承自Spring Boot的工件,因此可以通过maven的'dependencyManagement'功能自动加载许多依赖库。同样由于相同的原因-当Spring Boot应用程序变成共享库时,并非所有必需的库都将自动解析为依赖项。

要解决此问题,您需要将共享类提取到专用共享库中,并将该库用作项目之间的依赖项。 没有简单的方法,对不起。