Файл ресурса FileNotFoundException из внешнего каталога maven intellij - PullRequest
0 голосов
/ 02 мая 2019

У меня возникла проблема с запуском приложения SpringBoot в Intellij.@SpringBootApplication находится в дочернем модуле

└── conf
   └── xml
      └──beans.xml
└── source
   └── core
       └── common
        └── MainApplication.java --> @SpringBootApplication
   └── config
   └── pom.xml --> parent

MainApplication.java имеет аннотацию @ImportResource ("classpath: /beans.xml")

@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.xxx.yyy"})
@EnableCaching
@ImportResource("classpath:/beans.xml")
public class ServiceApplication extends SpringBootServletInitializer implements WebApplicationInitializer // extends SpringBootServletInitializer implements WebApplicationInitializer
{  

Модуль "config"имеет pom.xml, нет файла Java.Он генерирует только ресурсы

<artifactId>config</artifactId>
    <properties>
        <environment>DEV</environment>
        <country>ID</country>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <build>
        <filters>
            <filter>../../build/server.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>../../conf</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>**/**/log4j2.xml</exclude>
                </excludes>
                <targetPath>../../../../deploy/conf</targetPath>
            </resource>
...

Я пытался запустить конфигурацию на Intellij, но выдает ошибку FileNotFoundException для файла beans.xml.Эта конфигурация уже работала на Eclipse в других товарищах по команде.Я хочу запустить его на Intellij.Я уже импортирую конфигурационный модуль в Project Structure, а папка conf уже помечена как Resource Root.Почему его до сих пор не работают?Или, если мне нужно добавить изменения в существующий файл Java или POM, все в порядке.пока приложение может найти свой путь к папке ресурсов.Мне не нужно вступать в войну и запускать ее, но я хочу работать только как приложение SpringBoot

Спасибо.Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 02 мая 2019

Первый: удалить ведущий / из @ImportResource("classpath:/beans.xml").

Это должно быть:

@ImportResource("classpath:beans.xml")

Второе: убедитесь, что вы beans.xml скопированы в каталог сборки вашего проекта при обработке ресурсов.

Местоположение по умолчанию для beans.xml будет target/classes/beans.xml.

0 голосов
/ 02 мая 2019

Удалить начальный / из @ImportResource ("classpath: /beans.xml").

  1. Должно быть как: @ImportResource("classpath:beans.xml")

  2. Проверьте, скопирован ли исходный файл beans.xml в каталог сборки или нет: Путь: /target/classess/beans.xml

  3. Если вы не поместили beans.xml в исходную папку, укажите реальный путь или поместите его в папку ресурсов

0 голосов
/ 02 мая 2019

Я бы сказал, что это не стандартная структура проекта Java ... не очень хорошая практика.

Перейдите в Файл -> Структура проекта -> Модули, например ::1003*

enter image description here

Как вы можете видеть, вы можете редактировать пути к папкам Source, Resource, Test ... или добавлять больше, чем на.

возможно, это поможет ...

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