14

実行するmvn exec:javaと、構成引数を正しく解析できず、次のエラーがスローされます。

[エラー]プロジェクトautotest-programmesでゴールorg.codehaus.mojo:exec-maven-plugin:1.2.1:java(default-cli)を実行できませんでした:mojo org.codehaus.mojo:exec-mavenの構成を解析できません-plugin:1.2.1:java:タイプjava.lang.Stringの配列に構成値を割り当てることができません:[-classpath、Classpath {}、-glue、com.company.test.cucumber、-format、pretty、- -format、html:C:\ worksheet \ autotest \target]->[ヘルプ1]

これは、使用されるプラグイン構成です(Apache Maven 3.0.3を使用)。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
        <execution>
            <goals>
                <goal>java</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includeProjectDependencies>false</includeProjectDependencies>
        <includePluginDependencies>true</includePluginDependencies>
        <executableDependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-core</artifactId>
        </executableDependency>
        <mainClass>cucumber.cli.Main</mainClass>
        <commandlineArgs>-Dfile.encoding=UTF-8</commandlineArgs>
        <arguments>
            <argument>-classpath</argument>
            <classpath/>
            <argument>--glue</argument>
            <argument>com.company.test.cucumber</argument>
            <argument>--format</argument>
            <argument>pretty</argument>
            <argument>--format</argument>
            <argument>html:${project.basedir}\target</argument>
        </arguments>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>1.0.2</version>
        </dependency>
    </dependencies>
</plugin>
4

3 に答える 3

12

構成から空のエントリを削除して、再試行することをお勧めします。

 <argument>-classpath</argument>
 <classpath/>

Javaの目標では、ドキュメントに基づいてクラスパスが許可されていません。

ところで:Mavenpomで「\」を使用しないでください。代わりにスラッシュを使用してください。

于 2012-04-17T10:51:22.827 に答える
2

ここのexec:java Docsによると、次のことを行う必要があります。

<arguments>部品を取り外します

そして、<additionalClasspathElements>宣言を使用してクラスパスを定義します。

于 2015-03-31T12:37:14.747 に答える
1

を使用したい場合は、を使用する必要があります。<classpath/>を使用する必要はexec:execありませんexec:java。また、実行可能ファイルを追加する必要があります。これはjava、次の場合です。

<executable>java</executable>

私が正しく理解していれば、exec:javaオーバーライドできないクラスパスを自動的に追加します。引数はメインクラスの後に追加されます。exec:execより一般的であり、任意の引数を使用して実行可能ファイルを実行します。引数の1つを。にすることができます<classpath/>

于 2019-03-06T10:31:47.770 に答える