如何访问配置为java cxf soap项目中的依赖项的maven项目中资源文件夹中的属性文件?

时间:2019-05-20 22:16:02

标签: maven-3 maven-dependency-plugin

我有两个Maven项目,一个像一个核心模块,其中包含要通过位于资源文件夹中的属性文件到达大型机的代码,另一个是soap项目,该项目将核心项目添加为依赖项(不是模块)并调用类将公开用于检索肥皂调用中的数据的方法。

在部署时,核心项目无法从soap .war文件访问.properties文件,但是在soap项目中调用核心项目类的单元测试能够访问.properties文件。

浏览了这些网址:

  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
    • 内置:管理员
    • 创建者:Apache Maven 3.6.0
    • Build-Jdk:1.8.0_171
  2. web-inf文件夹:

    • lib文件夹
    • classes \ classes
    • classes \ classes \ config.properties
    • web.xml
    • cxf-servlet.xml

maven-core pom是:

<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>

maven-soap pom是:

<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上本地部署war时,输入对象为null,但soap项目中的单元测试能够获取属性文件。

根据我所读的内容,应该在类路径中访问资源文件夹中的文件,我不知道为什么上面的代码不起作用?

0 个答案:

没有答案