我正面临一种情况,我认为Maven为我提供了正确的工具。 无论是我错了还是Maven; o)
严重。
我们正在编写软件来使用第三方库,我们称之为prod.jar。此lib需要一个可以连接到prod.jar服务器的环境。 显然,我们的詹金斯不是也不能以这种方式建立。因此,当使用prod.jar运行测试时,一切都将失败,因为无法建立连接。
我的想法是编写一个模拟器,其行为类似于真正的prod.jar,可以用于单元测试,名为simulator.jar。 prod.jar和simulator.jar都拥有相同类名的相同包。它们只在功能上有所不同。我已经这样做了,以便在Jenkins的JUnit端进行开发和覆盖。当然,我们也会对prod.jar进行测试,但不会对Jenkins进行测试。
所以我做的是创建两个eclipse项目:
因此,根据您作为依赖项添加到主项目的项目,使用模拟器或生产代码。这很好。
但是我们得到的错误是构建包含错误的jar。
如果可能的话,如何设置maven,以便我可以使用相同的pom,但可能使用不同的mvn参数,在测试过程中使用模拟器并在构建过程中使用prod代码。 / p>
我尝试使用maven配置文件,但在使用构建jar时,它会抱怨。
<profiles>
<profile>
<id>simulator</id>
<dependencies>
<dependency>
<groupId>main-project</groupId>
<artifactId>simulator</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>jenkins</id>
<dependency>
<groupId>main-project</groupId>
<artifactId>simulator</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>main-project/groupId>
<artifactId>prod</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>realSystem</id>
<dependencies>
<dependency>
<groupId>main-project</groupId>
<artifactId>prod</artifactId>
</dependency>
</dependencies>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
任何帮助表示感谢。
非常感谢提前。