更新:起初看起来似乎是SoapUI maven插件的具体问题,但事实并非如此,所以请仔细阅读。
我正在使用Maven2运行SoapUI插件,如下所示:
<plugin>
<groupId>eviware</groupId>
<artifactId>maven-soapui-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<settingsFile>${basedir}/src/test/resources/soapui-settings.xml</settingsFile>
<projectFile>${basedir}/src/test/resources/my-soapui-project.xml</projectFile>
<outputFolder>${project.build.directory}/soapui-output</outputFolder>
<printReport>true</printReport>
<junitReport>true</junitReport>
<exportAll>true</exportAll>
<soapuiProperties>
<property>
<name>soapui.logroot</name>
<value>${project.build.directory}/soapui-logs/</value>
</property>
</soapuiProperties>
</configuration>
</plugin>
它完美运行并将所有soapui日志文件放入${project.build.directory}/soapui-logs/
,但有一个例外:global-groovy.log
进入basedir(似乎是SoapUI log4j配置中的错误)。
我需要一个选项来覆盖SoapUi maven插件附带的soapui-log4j.xml
文件并修复GLOBAL_GROOVY_LOG
appender:
<param name="File" value="global-groovy.log"/>
到此:
<param name="File" value="${soapui.logroot}global-groovy.log"/>
在过去,我以编程方式从JUnit测试运行SoapUI测试,并将更新的soapui-log4j.xml
文件放入src/test/resources/com/eviware/soapui/resources/conf/soapui-log4j.xml
并且它有效。 Maven将其复制到target/test-classes
并将该路径添加到classpath
以运行单元测试。
现在SoapUI maven插件的问题是我不知道如何将src/test/resources/com/eviware/soapui/resources/conf/soapui-log4j.xml
添加到插件的classpath
。是否有与Surefire additionalClasspathElements
configuration option类似的内容?
所以换句话说,我想知道如何将其他类路径条目添加到任何通用maven插件执行环境,而不仅仅是SoapUI插件。
答案 0 :(得分:1)
可以使用dependencies元素添加到插件依赖项。从POM参考:
此项目需要引入插件的类加载器的其他依赖项。
我不知道maven如何处理这些依赖项,所以它可能会将它们放在插件自己的类之后,这样可以有效地防止覆盖log4j配置,但是试一试;将log4j配置文件打包到jar中,并将其作为依赖项添加到插件中。