Как получить доступ к файлу свойств в папке ресурсов в проекте Maven, настроенном как зависимость в проекте Java Java CXF? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть два проекта maven, один из которых, как основной модуль, содержит код для мэйнфрейма через файл свойств, расположенный в папке ресурсов, другой - мыльный проект, который добавляет основной проект как зависимость (не модуль) и вызывает классы, которые будут предоставлять методы для извлечения данных в мыльных вызовах.

Основной проект не может получить доступ к файлу .properties из файла soap .war при развертывании, но модульные тесты в проекте soap, который вызывает классы основного проекта, могут получить доступ к файлу .properties.

Пройдя через эти URL:

  1. http://www.avajava.com/tutorials/lessons/how-do-i-add-a-project-as-a-dependency-of-another-project.html
  2. https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html

Когда я запускаю mvn clean install в обоих проектах, начиная с ядра, проект soap содержит файл .war в целевом каталоге со следующими файлами:

  1. папка manifest.mf:

    • Манифест-Версия: 1.0
    • Встроенный: admin
    • Создано: Apache Maven 3.6.0
    • Build-Jdk: 1.8.0_171
  2. папка web-inf:

    • папка lib
    • классы \ классы
    • классы \ Classes \ config.properties
    • web.xml
    • CXF-servlet.xml

мавен-ядро пом:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>zx.xy.zzz</groupId>
    <artifactId>maven-core</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>maven-core</name>

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <m2e.apt.activation>jdt_apt</m2e.apt.activation>

    </properties>

    <repositories>
        <repository>
            <id>local-maven-repo</id>
            <url>file:///${basedir}/local-maven-repo</url>
        </repository>

    </repositories>

    <build>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

мавен-мыло пом:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>za.gov.deeds.registration</groupId>
    <artifactId>cxf</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>cxf</name>

<dependency>
 <groupId>zx.xy.zzz</groupId>
 <artifactId>maven-core</artifactId>
 <version>1.0-SNAPSHOT</version>
 <scope>compile</scope>
</dependency>

В моем классе Util.java, когда я пытаюсь получить доступ к файлу свойств, я получаю нулевое значение, когда пытаюсь извлечь файл из пути к классам:

Properties prop = new Properties();
try (InputStream input = ClassLoader.getSystemClassLoader().getResourceAsStream("drs.properties");) {


}

входной объект равен нулю, когда я развернул войну локально на tomcat9, но модульный тест в проекте soap может получить файл свойств.

Согласно тому, что я прочитал, файлы в папке ресурсов должны быть доступны в classpath, я не могу понять, почему вышеприведенный код не работает?

...