Maven 多模块版本控制 - 包不存在



目前正在尝试创建一个多模块项目,该项目以ProjectMaster作为父POM,ProjectAPI和ProjectUI作为其模块。

我在 ProjectAPI 中创建了一个类来生成一个密钥以将其传递给 ProjectUI。

package com.ext.sample.ProjectAPI.util;
public class KeyGen {
public KeyGenData keyData;
@Autowired
public KeyGen (KeyGenData keyData) {
this.keyData= keyData;
}
public String KeyGenerator() {
// key gen code
}
}

现在,我已经将 API 的信息传递给了 UI 的 POM

原料药聚甲醛

<groupId>com.ext.sample</groupId>
<artifactId>ProjectAPI</artifactId>
<packaging>jar</packaging>
<version>1.0</version>

界面聚甲醛

<!-- Project dependencies -->
<dependency>
<groupId>com.ext.sample</groupId>
<artifactId>ProjectAPI</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

我已经将 API 的类导入到我在 UI 中使用的位置,Netbeans 和 Eclipse 中没有出现错误,但是当我清理和构建时,它们仍然返回编译错误。

com/ext/sample/ProjectUI/web/HomeController.java:[11,27] package com.ext.sample.ProjectAPI.util does not exist
com/ext/sample/ProjectUI/web/HomeController.java:[73,16] cannot find symbol
symbol:   class KeyGen
location: class com.ext.sample.ProjectUI.web.HomeController
import com.ext.sample.ProjectAPI.util.KeyGen;
@Controller
public class HomeController {
public KeyGen kg;
@RequestMapping(value = "/getKey", method = RequestMethod.POST)
public String getKey() {
String key = kg.KeyGenerator();
return key;
}

感谢您提供的任何帮助。

您的版本控制已损坏。您的 API 版本为 1.0,而您的 UI 尝试使用 1.0-SNAPSHOT。如果这个工件甚至存在(来自以前的尝试(,它根本不会更新。

对此的常见解决方案是在父 pom 中定义一个项目版本,而不在子项目中定义任何版本,从而继承父项目版本。

相关内容

最新更新