创建第二个 maven (依赖的使用)(注:这篇博文与上一篇博文内容关系密切)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建第二个 maven (依赖的使用)(注:这篇博文与上一篇博文内容关系密切)相关的知识,希望对你有一定的参考价值。

1、第二个工程的创建:


    a、它的目录层次结构为下图所示:

技术分享

技术分享


   注:第二个 maven 工程和第一个maven 工程保存的目录一样,和 .metadata同在一个目录下。


    b、pom.xml文件 以及 HelloFriend.java 和 HelloFriendTest.java 文件填写的内容为:


<?xml version="1.0" ?>
<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/xsd/maven-4.0.0.xsd">


    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.geeliGreed.maven</groupId>
    <artifactId>HelloFriend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>HelloFriend</name> 
    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.0</version>
            <scope>test</scope>
        </dependency>    

        <dependency>
            <groupId>cn.geeliGreed.maven</groupId>
            <artifactId>Hello</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>
</project>


package cn.geeliGreed.maven;   
import cn.geeliGreed.maven.Hello;

public class HelloFriend {
    public String sayHelloToFriend(String name){
        Hello hello = new Hello();
        String str = hello.sayHello(name)+" I am "+this.getMyName();
        System.out.println(str);
        return str;
    }
    public String getMyName(){
        return "John";
    }
}


package cn.geeliGreed.maven;    
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.geeliGreed.maven.Hello;
public class HelloFriendTest {
    @Test
    public void testHelloFriend(){
        HelloFriend helloFriend = new HelloFriend();
        String results = helloFriend.sayHelloToFriend("litingwei");
        assertEquals("Hello litingwei! I am John",results);    
    }
}


    注:可以看到,HelloFriend.java 文件中的内容(import cn.geeliGreed.maven.Hello;)使用了我们第一个工程中的 Hello.java 类。(使用 dependency 定位另一个工程的位置和名字)


2、maven 的 pom.xml 文件中的依赖问题:(一个 maven 工程依赖于另一个 maven 工程)

    

    a、在终端中进入指定的 maven 工程下有 pom.xml 文件的目录,键入 mvn compile,发现编译错误:


技术分享


    错误解析:执行在项目中的 HelloFriend 目标错误,不能够解析依赖的项目。


    b、我们发现在 RepMaven(即本地仓库)并没有 cn 这个目录,即本地仓库中并没有 该 jar 包。


技术分享


    c、查询资料发现,maven 解析依赖信息时会到本地仓库中查找被依赖的 jar 包。对于我们自己开发的 maven 工程,使用 mvn install 命令安装后就可以进入仓库。


技术分享

技术分享

技术分享


    注:在 Hello 目录下,即有 pom.xml 文件的目录下执行 mvn install 后,发现在 本地仓库中已有 该目录,以及该目录下对应的文件。


    d、再切换成 HelloFriend 指定的 maven 工程下指定有 pom.xml 文件的目录,键入 mvn compile,发现操作成功。


技术分享

技术分享


    注:在 HelloFriend 目录下已经生成了 target 目录。

本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1925918

以上是关于创建第二个 maven (依赖的使用)(注:这篇博文与上一篇博文内容关系密切)的主要内容,如果未能解决你的问题,请参考以下文章

Maven jar 依赖和关系

SpringMVC实现Restful风格的WebService

eclipse配置maven + 创建maven项目

SpringBoot系列: Maven多项目管理

依赖管理中的依赖与 Maven 版本插件中的依赖

依赖动态选择菜单,第二个菜单没有获取数据