0

pom ファイルのプロパティ セクションで定義されているキーから依存関係のバージョンを使用している場合、依存関係はダウンロードされませんが、依存関係のバージョンをハードコーディングすると、依存関係がダウンロードされます。

<properties>
    <cucumber-version>1.2.4</cucumber-version>
    <junit-version>1.2.4</junit-version>
</properties>

<dependencies>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>{cucumber-version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>{cucumber-version}</version>
        <scope>test</scope>
    </dependency>
 <dependencies>

上記のブロックでmvn clean testを実行すると、コンソールにエラーが次のように表示されます:-

[ERROR] Failed to execute goal on project MavenCucumber: Could not resolve dependencies for project com.manish.cucumber:MavenCucumber:jar:1.0-SNAPSHOT: Failed to collect dependencies at info.cukes:cucumber-java:jar:{junit-version}: Failed to read artifact descriptor for info.cukes:cucumber-java:jar:{junit-version}: Could not transfer artifact info.cukes:cucumber-java:pom:{junit-version} from/to central (http://repo.maven.apache.org/maven2): Illegal character in path at index 61: http://repo.maven.apache.org/maven2/info/cukes/cucumber-java/{cucumber-version}/cucumber-java-{cucumber-version}.pom -> [Help 1]

完全な pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> 4.0.0 com.manish.cucumber MavenCucumber jar 1.0-SNAPSHOT MavenCucmber http://maven.apache.org

<properties>
    <cucumber-version>1.2.4</cucumber-version>
    <junit-version>1.2.4</junit-version>
</properties>

<dependencies>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>{junit-version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>{junit-version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.2</version>
        <configuration>
            <argLine>-Duser.language=en</argLine>
            <argLine>-Xmx1024m</argLine>
            <argLine>-XX:MaxPermSize=256m</argLine>
            <argLine>-Dfile.encoding=UTF-8</argLine>
            <useFile>false</useFile>
        </configuration>
        </plugin>
    </plugins>
</build>

私が使用している Maven バージョンは Maven-3 です

Mavenが以下のようなURLから依存関係を取得しようとしている理由:-

repo.maven.apache.org/maven2/info/cukes/cucumber-java/{cucumber-version}/cucumber-java-{cucumber-version}.pom

プロパティタグで定義されている{cucumber-version}を1.2.4に置き換えていないのはなぜですか

4

1 に答える 1

1

構文が正しくないようです。$ 記号を先頭に付ける必要があります。

{junit-version} の代わりに ${junit-version} を入れてください

于 2016-06-20T03:36:21.120 に答える