Java 使用maven从nexus访问部署的库
我的项目结构如下:Java 使用maven从nexus访问部署的库,java,maven,Java,Maven,我的项目结构如下: 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-S
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>
org.springframework.boot
spring启动程序父级
2.2.10.发布
项目2
战争
com.test
项目1
0.0.1-快照
项目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 -->
org.springframework.boot
spring启动程序父级
2.2.10.发布
com.test
项目1
0.0.1-快照
部署快照
我可以在project2的依赖关系树下看到com.test.project1:0.0.1-SNAPSHOT
但是,当我试图访问project2中project1的类(enumtypes.Activation.java)时,我得到错误:(3,51)java:package com.test.enumtypes不存在
不确定原因是什么。正如@所建议的,有一种方法可以使用Spring启动应用程序作为依赖项。
与war文件一样,Spring引导应用程序不打算用作依赖项。如果您的应用程序包含要与其他项目共享的类,建议将该代码移动到单独的模块中。然后,您的应用程序和其他项目可以依赖单独的模块。我在project1上安装了mvn clean,在project2上也安装了mvn clean-但是,一旦出现上述错误,project1是否是常规的Spring引导应用程序?如果是这样,请查看yes这是一个常规的Spring引导应用程序“如果您的应用程序包含要与其他项目共享的类,建议的方法是将该代码移动到单独的模块中。”虽然此链接可能会回答这个问题,最好在这里包括答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-