我最近在 Github 的包注册表上托管了一个 Maven 包,现在我正在尝试使用它。该包旨在提供各种应用程序使用的数据模型,允许我的团队对数据模型包进行更改,而不是更新共享它们的所有 Spring 应用程序中的模型。
我将依赖项放在pom.xml
需要数据模型包的应用程序文件中,然后运行mvn install
(我还必须修改我的 .m2/settings.xml 文件才能访问存储库)。我的印象是该软件包已安装,因为它记录了成功并且它显示在我的 IDE 的 maven 插件依赖项列表中。
现在我被困住了。到目前为止,我认为一旦安装了包,我就可以导入我需要的类,就像我一直使用 Maven 包一样。但是当我尝试这样做时,我的 IDE 找不到包。
我又开始查看数据模型包,想知道是否需要提供一些额外的元数据。具体来说,我想我可能需要提供一些模块描述符,但我不能确定这是否真的会让我更接近能够使用该包。
这是pom.xml
数据模型包。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname</groupId>
<artifactId>data-model</artifactId>
<version>0.0.2-SNAPSHOT</version>
<name>Data-Model</name>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
</dependencies>
</project>
当我使用 Gradle 发布包时,我得到以下日志输出:
11:05:23 AM: Executing task 'publishGprPublicationToGitHubPackagesRepository'...
Starting Gradle Daemon...
Gradle Daemon started in 1 s 63 ms
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootJar UP-TO-DATE
> Task :generateMetadataFileForGprPublication
> Task :generatePomFileForGprPublication
> Task :publishGprPublicationToGitHubPackagesRepository
BUILD SUCCESSFUL in 16s
6 actionable tasks: 3 executed, 3 up-to-date
11:05:39 AM: Task execution finished 'publishGprPublicationToGitHubPackagesRepository'.
我运行时打印的日志mvn install
很长,所以我就不贴了,但是它不会产生任何错误,我可以看到它下载了datamodel jar并构建成功。它还显示在项目目录的外部库列表中。
数据模型的组 id 与我想在其中使用它的应用程序的组 id 相同(我的公司名称)。当我输入import com.companyname.
它建议一些本地包但不识别数据模型。当我将鼠标悬停在红色文本上时,工具提示会说Cannot resolve symbol 'datamodel'
我现在需要做什么,以便我的应用程序可以从我创建的 maven 包中导入类?