Maven:如何为插件执行添加自定义类路径条目?

时间:2011-02-23 02:17:39

标签: maven-2 log4j classpath maven-plugin soapui

更新:起初看起来似乎是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插件。

1 个答案:

答案 0 :(得分:1)

可以使用dependencies元素添加到插件依赖项。从POM参考:

  

此项目需要引入插件的类加载器的其他依赖项。

我不知道maven如何处理这些依赖项,所以它可能会将它们放在插件自己的类之后,这样可以有效地防止覆盖log4j配置,但是试一试;将log4j配置文件打包到jar中,并将其作为依赖项添加到插件中。