WAR / JAR-файлы, сгенерированные maven, не содержат самую актуальную версию кода - PullRequest
0 голосов
/ 13 декабря 2018

Я использую Spring Boot Application с Angular 7 Frontend и продолжал собирать (и выполнять) весь проект следующим образом:

mvn clean package
cd target
java jar -jarFile

, который работал отлично.Это запустило кота, и я мог получить доступ к сайту через localhost:8080.Теперь я сделал некоторые изменения в коде, и tomcat не запускает обновленную версию моего кода (а вместо этого запускает старый код).Я подтвердил это, добавив запись на моей самой первой странице:

Старый код

ngOnInit() {
    this.logger.info('init dashboard component');
    this.updateAllProjects();
    this.updateMyProjects();
}

Это новый код:

ngOnInit() {
    this.logger.info('init dashboard component');
    this.updateAllProjects();
    this.updateMyProjects();
    this.logger.info('everything up to date');
}

Он находится в функции ngOnInit().Теперь я вернулся и побежал mvn clean package и попытался снова запустить банку.Тем не менее, я получаю следующий вывод:

enter image description here

После запуска ng serve я получаю этот результат (что и ожидалось):

enter image description here

Я попытался запустить ng build и вручную развернуть на tomcat - тот же результат.

Итак, я посмотрел на мои сгенерированные классы - main.js в target\classes\static содержит следующий код:

 DashboardComponent.prototype.ngOnInit = function () {
        this.logger.info('init dashboard component');
        this.updateAllProjects();
        this.updateMyProjects();
        this.logger.info('everything up to date');
    };

, который в точности соответствует предполагаемому.

Так что я пошел дальше в свой сгенерированный JAR-файл.main.js из BOOT-INF\classes\static\ содержит следующий код:

DashboardComponent.prototype.ngOnInit = function () {
    this.logger.info('init dashboard component');
    this.updateAllProjects();
    this.updateMyProjects();
    this.logger.info('everything up to date');
}

Но все же это не выполняется, когда я запускаю `java -jar '.Я также пытался обменять некоторые элементы интерфейса, но изменения не были применены.У меня никогда не было этих проблем на самом деле, кто-то может связать / помочь?Я даже попытался перезагрузить компьютер ...: D

Также развертывание war-файла вручную имеет тот же вывод.

Редактировать:

Iиспользуйте spring-boot-starter-web -dependency в моем pom.xml, который является источником для этого кота.

Edit

Эта проблема касается только кода внешнего интерфейса.Я уже пытался очистить папку target и main/resources/static, и в этих каталогах создается новый код.

1 Ответ

0 голосов
/ 14 декабря 2018

Код внешнего интерфейса кэшируется браузером (Chrome).Для перезагрузки страницы без учета кеша вы можете использовать Shift + F5.(Подробнее см. https://support.google.com/chrome/answer/157179?hl=en ярлыки веб-страниц.)

...