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

laik7k3q  于 2023-04-04  发布在  Java
关注(0)|答案(2)|浏览(151)

我有一个使用Maven创建Utility jar的项目,它存储在本地存储库中。我想将该jar导入到我的Application项目中。因为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

...和其他一些东西. importable jar并没有把BOOT-INF放在我的类的目录前面,所以这就是我想包含在我的Application pom.xml中的jar。
我只是不知道如何引用它,因为下面引用的是utility-1.0.jar,它有BOOT-INF,因此找不到类。

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

我如何引用可导入的jar?(这是全新的,所以使用的都是最新版本的。)
我已经阅读了大量关于包含依赖maven项目的文章,但它们似乎并没有解释依赖项目和应用程序项目的确切内容。

omhiaaxx

omhiaaxx1#

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

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

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

vxbzzdmp

vxbzzdmp2#

看看https://www.baeldung.com/maven-artifact-classifiers这篇文章,下面的依赖关系应该对你有用:

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

相关问题