如何将命令行选项传递给phantomjs maven插件

时间:2018-01-30 09:26:18

标签: java maven phantomjs phantomjs-maven-plugin

我在我的Java项目中使用了phantomjs-maven-plugin。 我试图用我的pom.xml将命令行选项传递给phantomjs 类似的东西(在插件docs中描述:

<plugin>
            <groupId>com.github.klieber</groupId>
            <artifactId>phantomjs-maven-plugin</artifactId>
            <version>0.7</version>
            <executions>
                <execution>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>install</goal>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <version>2.1.1</version>
                <checkSystemPath>true</checkSystemPath>
                <commandLineOptions>--ssl-protocol=any --ignore-ssl-errors</commandLineOptions>
                <script>assets/test.js</script>
                <arguments>
                    <argument>${liberty.https.server.port}</argument>
                </arguments>
            </configuration>
        </plugin>

一般来说,我试图做的是这样的事情:

phantomjs --ssl-protocol=any --ignore-ssl-errors test.js

但现在没有运气,经过数小时的搜索。

当我设法运行我的maven任务时,我收到以下错误:

[INFO] Executing phantomjs command
Invalid values for 'ssl-protocol' option.

我想这个命令行选项存在一些语法问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

最后我通过配置找到了我在这里做错了什么。 只需要将<commandLineOptions>移动到<execution>区域内的配置部分。     它最终会看起来:

    <execution>
        <phase>integration-test</phase>
        <goals>
            <goal>install</goal>
            <goal>exec</goal>
        </goals>
        <configuration>
            <commandLineOptions>--ssl-protocol=any --ignore-ssl-errors=true</commandLineOptions>
        </configuration>
    </execution>

我从下面的主要配置部分删除了它。

我设法弄清楚我之前做的是将命令行参数传递给我的test.js脚本的执行以及phantom.js的执行。

我希望它会像我一样为一些失去的人服务:)。