java - 使用 maven 从 nexus 访问已部署的库
问题描述
我有一个项目结构:
projects
|
|
| |
| +--bom
| | |
| | +--pom.xml [The POM of bom:0.0.1-SNAPSHOT]
| |
| +--project1
| | |
| | +--pom.xml [The POM of project1:0.0.1-SNAPSHOT]
| |
| +--project2
| | |
| | +--pom.xml [The POM of project2:0.0.1-SNAPSHOT]
我已经将项目 1 的 jar 库部署到 nexus 并尝试在项目 2 pom 中访问它:
项目2:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
</parent>
<artifactId>project2</artifactId>
<packaging>war</packaging>
<dependency>
<groupId>com.test</groupId>
<artifactId>project1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
项目1的POM:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
</parent>
<groupId>com.test</groupId>
<artifactId>project1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<distributionManagement>
<snapshotRepository>
<id>deploy.snapshots</id>
<url>
<nexus server>
</url>
</snapshotRepository>
</distributionManagement>
<!-- Nexus Deployment -->
我可以在 project2 的依赖树下看到 com.test.project1:0.0.1-SNAPSHOT。
但是,当我试图在 project2 中访问 project1 的类(enumtypes.Activation.java)时,我收到错误 Error:(3,51) java: package com.test.enumtypes does not exist。
不知道可能是什么原因。
解决方案
正如@dunni所建议的,有一种方法可以将 Spring Boot 应用程序用作依赖项。与 war 文件一样,Spring Boot 应用程序不打算用作依赖项。如果您的应用程序包含您想与其他项目共享的类,推荐的方法是将该代码移动到单独的模块中。然后,您的应用程序和其他项目可以依赖单独的模块。
推荐阅读
- ruby-on-rails - 按集合中的列对多个条目进行分组
- html - 下拉菜单中的导航栏搜索框会导致其他导航栏图标崩溃
- android - Android Wear OS 应用程序振动有时不起作用
- c++ -
'class std::result_of 中没有名为 'type' 的类型 我正在尝试为 std::thread 的向量构建一个简单的封装;我想初始化最多 MAX 数量的线程。如果我达到最大数量,主线程将运行代码(写入输出文件)。我保留了一个包含 std::thread 和 bool 标志的类的 Vector。我不是直接通过 std::threads
- java - Spring Data和JPA中的递归关系?
- xcode - 使标签成为全局元素
- android - 在 onCreateViewHolder 中找不到 getRef(position)
- amazon-web-services - Terraform:无法在实例上创建 cloudwatch 警报
- java - 带有图像的 CursorAdapter 加载很奇怪
- .net - 更新到 .NET Core SDK 2.1.4 后缺少 dotnet