055-Maven 和松耦合的概念

梵高摔电脑 2021-11-24 22:53:29

Maven 简介
在项目开始之前,我们先来了解一下 Maven 相关知识。

Maven 是一个项目管理和综合工具。Maven 提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven 使用标准的目录结构和默认构建生命周期。

在多个开发团队环境时,Maven 可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven 让开发人员的工作更轻松,同时能够创建报表,检查、构建和测试自动化设置。

Maven 提供了开发人员的方式来管理:

Builds
Documentation
Reporting
Dependencies
SCMs
Releases
Distribution
mailing list
概括地说,Maven 简化和标准化项目建设过程,处理编译,分配,文档,团队协作和其他任务的无缝连接。Maven 增加可重用性并负责建立相关的任务。

导入 Maven 项目所需的包
由于 Maven 新建项目需要很多包,首先会扫描本地仓库,如果没有则需要联网,在中央仓库下载到本地仓库。我们已经把本次项目需要的包已经打包传到服务器上,现在,我们只需要从实验楼下载所要的包,并安放到正确的位置即可。

仍旧在 Terminal 中,输入:

wget https://labfile.oss.aliyuncs.com/courses/578/m2.zip
copy
然后,解压:

unzip m2.zip
copy
解压完成后,将生成的 .m2 文件夹移动到 maven 本地仓库,默认的 maven 本地仓库在 /home/java/.m2/ 下。所以我们解压好的文件正好覆盖源 .m2 文件夹。在没有使用过 maven 的情况下是没有这个文件夹的,所以只需要将.m2文件夹移动到 /home/java/即可。

mv .m2 /home/java/.m2
首先在 WEB IDE 顶部,选择 Terminal -> New Terminal,

在终端中输入:

mvn archetype:generate -DgroupId=com.java.demo -DartifactId=springExample -DarchetypeArtifactId=maven-archetype-quickstart
copy
参数说明:

Group Id:项目的组织机构,也是包的目录结构,一般都是域名的倒序,比如 com.java.demo。
Artifact Id:项目实际的名字,比如 springExample。
archetype Artifact Id:使用的 maven 骨架名称。
输入命令之后,maven 会提示我们输入版本号,这里可以直接定义版本号也可以直接回车,接着 maven 会提示当前要创建项目的基本信息,输入 y 然后回车确认。

pic

然后我们选择 File -> Open Workspace 切换工作空间,选择 springExample 目录,必须切换到该目录下,否则识别不了项目。

创建 pom.xml
打开项目的 pom.xml,添加 Spring 依赖


4.0.0

<groupId>com.shiyanlou</groupId>
<artifactId>springExample</artifactId>
<version>1.0-SNAPSHOT</version>

<name>springExample</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

** <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.1.1.RELEASE</spring.version>**

</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>
copy 实际上,Maven 使用以上配置来唯一指定一个项目。引用一个库文件也是通过以上配置来确定所引用的库及其版本号,比如本例引用 Spring 库版本为 5.1.1.RELEASE。

创建 HelloWorld.java
接下来,我们在 src/main/java 目录中创建一个 Spring bean,首先创建一个包,包名为 com.java.demo.helloworld,再在该包内创建一个类,类名为 HelloWorld,并将 HelloWorld.java 编辑如下:

package com.java.demo.helloworld;

public class HelloWorld{

private String name;

public void setName(String n){
this.name = n;
}

public void printHello(){
System.out.println("The first Spring :hello"+name);
}
}
copy
创建 SpringBeans.xml
我们先在 src/main/ 下新建一个 Folder,命名为 resources,现在可以开始创建 Spring Bean 配置文件,创建文件 SpringBeans.xml,配置 bean 如下。文件位于 src/main/resources 下。

编辑 SpringBeans.xml 文件如下:






copy
创建测试 App
在 com.shiyanlou.demo 包下创建一个类,类名为 App:

package com.java.demo;

import com.java.demo.helloworld.HelloWorld;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App{
private static ApplicationContext context;

public static void main(String[] args){
context = new ClassPathXmlApplicationContext("SpringBeans.xml");

HelloWorld obj = (HelloWorld) context.getBean("helloBean");
obj.printHello();

}
}
copy
作为 java application 运行
首先打开终端,使用 mvn compile 编译 java 程序,然后使用:

mvn compile
mvn exec:java -Dexec.mainClass="com.java.demo.App"
copy
这里用 maven 执行 java 程序,-Dexec.mainClass 参数指定 main 方法所在类。
运行结果如下:

至此,helloworld 程序便成功完成!

...全文
4 9 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
提桶跑 6天前

可以的,向大佬们多学习

回复
相关推荐
发帖
编程新手村
创建于2021-11-01

6.5w+

社区成员

灌水发信息每周送书 灌水发干货每周送惊喜 谁最水过年送大礼 谁最硬核过年送大礼 谁最贡献过年送大礼
帖子事件
创建了帖子
2021-11-24 22:53
社区公告

我们“新手村”社区就是大家的孵化器

你们学习,我来评分

每周最高分送一本书

每月第四周送一份机械键盘

咱们新手村使用一切狂暴手段让优秀的人得到奖励