我在论坛上搜索了我的问题的答案,但我找不到。我的问题是:
我有两个项目:项目A和项目B。ProjectB使用ProjectA。在ProjectA中,我有两个文件夹:/src/main/resources和/src/test/resource。在ProjectB中,我运行:mvn clean install。我希望,在测试阶段,ProjectB中的类使用/src/test/resources中的资源,而不是/src/main/resource中的资源。
这就是我所尝试的:http://www.waltercedric.com/java-j2ee-mainmenu-53/361-maven-build-system/1349-maven-reusing-test-classes-across-multi-modules-projects.html
这类似于我的问题,但是在我为 ProjectA 配置了 test-jar 目标之后,ProjectB 仍然以项目 A 中的类使用 /src/main/resources 中的属性而不是 /src/test/resources 的方式运行测试。
这是我的pom。ProjectA中的xml看起来像:
<project ...>
<parent>
...
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ProjectA</artifactId>
<packaging>jar</packaging>
<dependencies>
...
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
在ProjectB中,my pom.xml看起来像:
<project ...>
<parent>
...
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ProjectB</artifactId>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.sensano</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ProjectA</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>test</scope>
<type>test-jar</type>
</dependency>
</dependencies>
</project>
有什么方法可以帮助我们吗!
真诚的,马特乌斯·莫罗兹
src/main/resources
被打包到名为ProjectA的jar文件中。jar
如下结构
ProjectA.jar
|`-com
| `-sensano
| `-foo
`-[the resource form src/main/resources]
遗憾的是,< code>src/test/resources也打包到名为< code>ProjectA-tests.jar的jar文件中,结构如下。
ProjectA-tests.jar
|`-com
| `-sensano
| `-foo
`-[the resource form src/test/resources]
如果< code>src/main/resources和< code>src/test/resources中所需的资源名称相同。可能有一些类装入器的问题。依我看,最近的赢了。
由于您将< code>ProjectA放在< code>ProjectA-tests之前,这可能是< code>ProjectB将使用来自< code>ProjectA的< code>src/main/resources的根本原因,因为它是最近的。
请尝试通过将 ProjectA 测试
放在 ProjectA
之前进行交换,如下所示:-
<dependencies>
<dependency>
<groupId>com.sensano</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>test</scope>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>com.sensano</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
最近的将是ProjectA-test
,ProjectB
应改用src/test/Resources
。
我希望这会有所帮助。
我为每个生成环境都有一个自定义属性文件夹。我已经为它定义了配置文件并添加了不同的文件夹。它们会被正确地捡起来。但是,src/main/resources中的资源没有被拾取。如果netbeans 8有什么不同的话,我会使用它。我的问题是一旦激活了不同的概要文件,是否需要在概要文件中重新指定主要资源或测试资源?多谢了。 我正在使用Maven开发一个java web项目。有一些web服务的xml文件(h
我有一个maven Spring项目,里面有文件。如何在SpringMVC控制器中读取它。 我正在使用 但是is.
我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt. 当我试图打开文件时: 我得到一个错误: src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?
我正在为我的maven项目添加一个可执行的jar测试。我已经编辑了pom文件,以使用src/main/resources中的一个主类。但是,当我尝试运行jar时,它找不到我的主类。有什么想法吗?
问题内容: 在我的Maven项目中,我在src / main / resources中有一个xls文件。当我这样阅读时: 一切都好。 但是我想使用getResourceAsStream将其作为InputStream读取。当我执行此操作时,无论是否使用斜线,我总会得到NPE。 不管斜线是否存在,或者如果我使用getClassLoader()方法,我仍然会得到一个NullPointer。 我也尝试过这
我有两个包含java代码和资源的工作目录,一个用于测试,另一个用于生产。 src/main/java src/main/resources src/test/java src/test/resources 当运行我的代码并从FileInputStream读取文件时,如下所示: 只要文件位于项目的根目录中,就可以正常工作。如果我将文件放在资源文件夹中并直接指向它,它也可以工作,如下所示: 有没有办法