我有一个使用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项目的文章,但它们似乎并没有解释依赖项目和应用程序项目的确切内容。
2条答案
按热度按时间omhiaaxx1#
要在应用程序项目中包含Utility JAR的可导入版本,可以在依赖项中指定分类器,如下所示:
这将解析JAR的可导入版本并将其包含在应用程序项目中。
如果JAR的可导入版本不在您的本地存储库中,您可能需要首先通过在实用程序项目上运行mvn install来安装它,以便它在您的本地存储库中可用,供应用程序项目解析。
vxbzzdmp2#
看看https://www.baeldung.com/maven-artifact-classifiers这篇文章,下面的依赖关系应该对你有用: