Maven pom 以包含来自另一个项目的可导入 jar

问题描述 投票:0回答:2

我有一个使用 Maven 创建 Utility jar 的项目,它存储在本地存储库中。我想将该 jar 导入到我的应用程序项目中。因为 Maven 现在将 BOOT-INF 放在类路径的前面,所以我将以下内容放入 Utility Jar 中以生成可导入版本。

<build>
    <plugins>
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <!--to be imported on other projects-->
                            <classifier>importable</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

它是 1.0 版,所以它在存储库中创建以下内容......

utility-1.0-importable.jar
utility-1.0.jar

...和其他一些东西。 可导入的 jar 不会将 BOOT-INF 放在我的类目录的前面,所以这就是我想包含在我的应用程序 pom.xml 中的 jar。

我只是不知道如何引用它,因为下面引用了 utility-1.0.jar,它有 BOOT-INF,因此找不到类。

        <dependency>
            <groupId>com.acme</groupId>
            <artifactId>utility</artifactId>
            <version>1.0</version>
        </dependency>

如何引用可导入的罐子? (这都是全新的,所以都使用了最新版本。)

我一直在浏览大量关于包括依赖的 Maven 项目的帖子,但它们似乎并没有解释究竟什么进入了依赖项目,什么进入了应用程序项目。

java spring-boot maven dependencies pom.xml
2个回答
0
投票

看看文章https://www.baeldung.com/maven-artifact-classifiers,下面的依赖应该适合你:

        <dependency>
            <groupId>com.acme</groupId>
            <artifactId>utility</artifactId>
            <version>1.0</version>
            <classifier>importable</classifier>
        </dependency>

0
投票

要在您的应用程序项目中包含 Utility JAR 的可导入版本,您可以在依赖项中指定分类器,如下所示:

<dependency>
    <groupId>com.acme</groupId>
    <artifactId>utility</artifactId>
    <version>1.0</version>
    <classifier>importable</classifier>
</dependency>

这将解析 JAR 的可导入版本并将其包含在您的应用程序项目中。注意需要在元素中指定分类器

如果 JAR 的可导入版本不在您的本地存储库中,您可能需要先通过在实用程序项目上运行 mvn install 来安装它,以便它在您的本地存储库中可供应用程序项目解析。

© www.soinside.com 2019 - 2024. All rights reserved.