Ответы пользователя по тегу Gradle
  • Где есть приватный maven/gradle репозиторий?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вы можете поднять Nexus репозиторий и использовать сколько угодно
    https://habr.com/ru/post/473358/
    https://www.sonatype.com/products/nexus-repository
    Ответ написан
    Комментировать
  • Module commons.io not found, required by com.example.myapp Не найдено?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый вечер.
    Вы забыли прописать commons-io в module-info.java
    requires org.apache.commons.io;
    или скорее даже
    requires commons-io;
    Ответ написан
    Комментировать
  • При запуске проекта на эмуляторе получаю Execution failed for task ':app:compileDebugJavaWithJavac', как решить?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый вечер.
    Попробуйте для начала глянуть на ответы, которые были на разных ресурсах по данному вопросу.
    Например,
    https://github.com/gradle/gradle/issues/15538
    https://github.com/gradle/gradle/issues/16641
    Гугл
    Ответ написан
    Комментировать
  • Как правильно сделать взаимодействия между модулями в Java Spring?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Предположу, что у вас все-таки реализован не микросервисный монолит, а монолитная архитектура. Вы лишь разделили монолитное приложение на модули и подключили их в gradle. С другой стороны - а нужен ли вам микросервисный монолит или микросервис вообще, если приложение довольно маленькое и им пользуются всего 40 человек.
    Если речь идет просто о взаимодействии модулей монолитного приложения, то в соответствующем gradle файле модуля подключаете нужный модуль и импортируете нужные сервисы, классы и т.д.
    Главное обратите внимание, чтобы не было циклической зависимости, которая у вас указана тут:
    Circular dependency between the following tasks:
    :amocrm:compileJava
    \--- :datadeal:compileJava
         \--- :amocrm:compileJava (*)

    Информация по теме -
    https://reflectoring.io/spring-boot-gradle-multi-m...
    https://spring.io/guides/gs/multi-module/
    Циклическая зависимость возникает, когда модуль А ссылается на модуль В, а модул В ссылается на модуль А. Ни gradle, ни maven не могут решить эту проблему, так как для сборки одного модуля нужен другой модуль, а для другого первый. Также это говорит о том, что возможно проект был несовсем корректно разделен на модули. Можно попробовать создать модуль C, и вынести общие для модулей A & B классы в него. А затем добавить зависимость модуля A от C, а модуля B тоже от C. Таким образом циклической зависимости не будет. Также обратите внимание на рекомендации по организации структуры Spring приложения, которая указана в оф. документации на их сайте.

    Если речь идет о взаимодействии модулей микросервисного монолита, как его выделяют в некоторых источниках, то модули должны сообщаться через различные асинхронные и синхронные интеграции.

    Если уж вам понадобилось делить проект на микросервисы, то как по мне лучше реализовать полноценную микросервисную архитектуру через API Gateway. Соответственно, связать модули через REST. Тут уже понадобится Spring Cloud API Gateway, Spring Cloud Netflix Eureka Client & Server и т.д.

    Возможно, что есть подводные камни, о которых я не знаю. Надеюсь, что коллеги поопытнее более подробно ответят на данный вопрос.
    А так вот, небольшая статья по данной тематике: https://habr.com/ru/post/496934/
    Вдруг, вам будет интересно - небольшой вводный курс по Spring Cloud, Eureka, Zulu и т.д. - https://www.udemy.com/course/spring-boot-microserv...
    Ответ написан
    1 комментарий
  • Не могу задеплоить war на внешний сервер на Tomcat?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Странно, только вчера я ответил на ваш вопрос... И он почему-то был удален и вы заново разместили этот же вопрос...
    1) Уточните пожалуйста вы собираете war или используете exploded war? Корректно ли вы собираете war в Intellij IDEA? Правда, не всегда она корректно собирается автоматически, если выбирать "From modules and dependencies"...
    2) Учли ли вы context path на удаленном tomcate? Например, если вы запускаете ваше приложение на локалке так: localhost:8080/greening то с учетом context path на удаленке будет выглядеть примерно, так localhost:8080/pathfinderPrj_war_exploded/greeting
    В application properties пропишите - server.servlet.context-path=/YoutContextPathHere
    3) Еще вчера я писал про то, что вы используете шаблонизатор thymeleaf. Соответственно, место хардкодинга ссылок типа href="/greeting"используйте его синтаксис th:href="@{/greeting}"
    Также, на будущее... если ошибка на серверной стороне будет, то можете в любое время поднять логи TomCat
    Ответ написан
    Комментировать