练习 - Maven by Example book

时间:2013-03-26 00:49:43

标签: maven pom.xml

我正在尝试学习Maven,因此我创建了一个简单的Web应用程序,如“Maven by Example”一书中提供的那样,在那个应用程序中,我有简单的模型作为依赖的简单天气,在简单父母maven项目。

我刚刚复制了pom.xml(只是调整了hibernate工件版本),当我在“简单模型”上运行“mvn install”时,它构建正常,但是当我运行“mvn install”时“简单天气”它没有构建好,因为它说它找不到与简单模型依赖关系相关的包。

注意:如果我创建两个eclipse项目并且关联简单模型“它编译好了,那么就没有与项目编译相关的问题。

同时查看pom.xml。我想问题是在pom.xml上,但我不知道该怎么做。我已经尝试过很多方法,但根本没有成功。

我已经将组和工件ID从简单模型复制到简单天气,以确保它不是打字问题。 : - (

// 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 - &gt;的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

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

简单模型中的源是否真的正确?

请注意,Maven没有抱怨未解决的依赖。依赖关系似乎是正确的,它是无法找到包org.sonatype.mavenbook.weather.model的编译错误。这主要是因为这样的包既不能用于简单的web项目本身,也不能用于它的依赖项(即简单模型)。

检查在简单模型中创建的JAR,看它是否包含正确的内容。