Многоуровневое версионирование Maven - пакет не существует - PullRequest
0 голосов
/ 04 февраля 2020

В настоящее время пытаюсь создать многомодульный проект с 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 в POM моего пользовательского интерфейса

POM API

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

POM пользовательского интерфейса

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

Я уже импортировал класс API туда, куда я использую в пользовательском интерфейсе, в 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;
    }

Благодарим вас за любую помощь.

1 Ответ

0 голосов
/ 04 февраля 2020

Ваша версия не работает. Ваш API имеет версию 1.0, а ваш пользовательский интерфейс пытается использовать 1.0-SNAPSHOT. Если этот артефакт даже существует (из предварительных попыток), он вообще не обновляется.

Общим решением этого является определение одной версии проекта в родительском pom, а не определение какой-либо версии в дочернем проекте, таким образом наследуя версия родительских проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...