1

私はMavenを勉強しようとしているので、「Maven by Example」という本で提供されているように、単純なWebアプリケーションを作成しました。そのアプリケーションでは、単純な親の内部に、依存関係として単純なモデルを持つ単純な天気があります。 Mavenプロジェクト。

pom.xmlをコピーして(休止状態のアーティファクトバージョンを調整するだけです)、「simple-model」で「mvn install」を実行するとビルドは正常になりますが、「simple-model」で「mvninstall」を実行すると-weather」は、simple-model依存関係に関連するパッケージが見つからないと言っているため、正常にビルドされません。

注:2つのEclipseプロジェクトを作成し、simple-modelを関連付けると、コンパイルは正常に行われるため、プロジェクトのコンパイルに関連する問題はありません。

両方のpom.xmlを参照してください。問題はpom.xmlにあると思いますが、どうしたらよいかわかりません。私はすでに多くの方法で修正しようとしましたが、まったく成功しませんでした。

タイピングの問題ではないことを保証するために、グループとアーティファクトIDもsimple-modelからsimple-weatherにコピーしました。:-(

// simple-model-> 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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.sonatype.mavenbook.multispring</groupId>
        <artifactId>simple-parent</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>simple-model</artifactId>
    <packaging>jar</packaging>
    <name>Simple Object Model</name>
    <dependencies>
        <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.5.6-Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>3.2.0.Final</version>
</dependency>
    </dependencies>
</project>

// simple-weather-> 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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.sonatype.mavenbook.multispring</groupId>
        <artifactId>simple-parent</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>simple-weather</artifactId>
    <packaging>jar</packaging>
    <name>Simple Weather API</name>
    <dependencies>
        <dependency>
            <groupId>org.sonatype.mavenbook.multispring</groupId>
            <artifactId>simple-model</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

エラーメッセージを参照してください。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.
3.2:testCompile (default-testCompile) on project simple-weather: Compilation fai
lure: Compilation failure:
[ERROR] \mavenTest\ch-multi-spring\simple-parent\simple-weather\src\test\java\or
g\sonatype\mavenbook\weather\yahoo\YahooParserTest.java:[8,43] error: package or
g.sonatype.mavenbook.weather.model does not exist

どんな援助もいただければ幸いです。前もって感謝します。

4

1 に答える 1

1

シンプルモデルのソースは実際に正しいですか?

Mavenは未解決の依存関係について不平を言っていないことに注意してください。依存関係は正しいようで、パッケージが見つからないのはコンパイルエラーですorg.sonatype.mavenbook.weather.model。これは主に、そのようなパッケージがsimple-webプロジェクト自体でも、その依存関係(つまり、simple-model)でも利用できないためです。

simple-modelで作成されたJARをチェックして、正しいコンテンツが含まれているかどうかを確認します。

于 2013-03-26T04:56:46.277 に答える