• 【说明】貌似maven在真实的项目实战中挺重要的,可以省去大量的工作,有必要单独学习一下
  • 15.创建一个新的maven项目
  • 16.在src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。

想仔细了解一下maven,所以找了 maven实战 这本书,下面会说一些书上的东西

第一章:第二节

maven版本

下载帮助插件(后面还有好多)

因为没有下载完,所以下载路径还没有(等待)

果然去国外网站上下载东西不可靠!还是国内镜像好!

然后又发现了管理员和普通用户在命令行下的权限是不一样的,为了能够使用mvn命令,做出如下改变

然后先自己按照书上说的建立了pom文件和src源文件,然后编译

不过和书上的不太一样。

接着做单元测试,先添加一个Junit依赖,修改POM

注意scope指定了测试范围是test

测试成功!

打包成功!

安装任务!(安装到本地本地仓库)

为了使打包的jar能够运行,需要借助maven-shade-plugins插件

再次安装(前者是可运行jar,后者是原始jar)

打开上面那个jar的manifest.mf

现在,可以执行了

OK! 上面介绍了一个maven项目helloWorld,介绍了pom、maven项目结构,以及如何编译测试打包等

  • 17.编写DAO,注意写清楚Interface和Impl,注意遵守命名规范。(注意java8里面的接口中可以default方法)

先看看接口和实现分层的必要性

接口正常来说应该是一开始就设计好的,不能随意的修改,如果你经常修改,首先需要考虑dao层是否考虑的足够充分
而为什么有接口层,是为了进行更好的隔离,最简单的例子就是,如果你对service层需要进行单元测试了,

而又不希望你对dao层进行实际的操作(可能是条件不允许),这时你很可能需要针对测试去mock一个dao出来,接口的优势就体现出来了

举个例子

dao中有

public interface UserDAO {
public List getUser();
}

dao.imple中

public class JdbcUserDao implements UserDAO{
@Override
public List getUser() {
//do sth.
return null;
}
}
  • 18.学习Junit,并尝试写自己的第一个单元测试,记着要写在自己的src/main/test下。

这个在上面的任务已经完成了!

import static org.junit.Assert.assertEquals;
import org.junit.Test;

import com.juvenxu.mvnbook.helloworld.HelloWorld;

public class HelloWorldTest
{
@Test
public void testSayHello()
{
HelloWorld helloWorld = new HelloWorld();

String result = helloWorld.sayHello();

assertEquals( "Hello Maven", result );
}
}

二:明日计划

  • 19学习Spring,配置Spring和Junit
  • 20.编写单元测试的代码,注意,你也可以尝试一下,先写单元测试的代码,再写接口,再写实现类。
  • 21.查看日志,并转成Debug模式,练习调试,学会查看单步执行时的变量值。
  • 22.买一台服务器,阿里云或者是金山云都可以。部署数据库到远程DB,从本地直接连远程。
  • 23.将部署自己服务到服务器上,包括Maven,Mysql客户端等。直接用Maven命令跑单元测试。
  • 24.直接执行Main方法,去在服务器上跑通流程。

三:疑难问题

因为是对着书本边做边学的,所以碰到的问题不多,即使有,在网上也可以找到相关问题解答

四:思考总结

主要谈谈maven是什么吧,可以简单理解为构建工具(类似make;ant),当然它不仅仅是构建工具

构建工具是将软件项目构建相关的过程自动化的工具。构建一个软件项目通常包含以下一个或多个过程:

  • 生成源码(如果项目使用自动生成源码);
  • 从源码生成项目文档;
  • 编译源码;
  • 将编译后的代码打包成JAR文件或者ZIP文件;
  • 将打包好的代码安装到服务器、仓库或者其它的地方;

有些项目可能需要更多的过程才能完成构建,这些过程一般也可以整合到构建工具中,因此它们也可以实现自动化。

自动化构建过程的好处是将手动构建过程中犯错的风险降到最低。而且,自动构建工具通常要比手动执行同样的构建过程要快。

task15-18的更多相关文章

  1. CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

    CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...

  2. ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(18)-权限管理系统-表数据

    系列目录 这一节,我们插入数据来看看数据流,让各位同学,知道这个权限表交互是怎么一个流程,免得大家后天雾里来雾里去首先我再解释一些表,SysUser和SysRole表不用解释了. SysRoleSys ...

  4. C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理

    在上篇随笔<C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理>介绍了通讯录的部门的相关操作管理,通讯录管理包括部门管理.成员管理.标签管理三个部分,本篇主要介绍成员的管 ...

  5. [MySQL Reference Manual] 18 复制

    18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...

  6. Hihocoder 太阁最新面经算法竞赛18

    Hihocoder 太阁最新面经算法竞赛18 source: https://hihocoder.com/contest/hihointerview27/problems 题目1 : Big Plus ...

  7. grep-2.26 sed-4.2.2 awk-4.1.4 wget-1.18 pcregrep-8.39 pcre2grep-10.22 for windows 最新版本静态编译

    -------------------------------------------------------------------------------------------- grep (G ...

  8. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  9. Java随机生成18位身份证号

    package com.ihome.data; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...

  10. tornado学习笔记18 _RequestDispatcher 请求分发器

    根据Application的配置,主要负责将客户端的请求分发到具体的RequestHandler.这个类实现了HTTPMessageDelegate接口. 18.1 构造函数 定义: def __in ...

随机推荐

  1. Shell--Bash shell的操作环境

    一.路径与命令查找顺序 1.以相对/绝对路径执行命令,例如“/bin/ls”或“./ls”; 2.由alias找到该命令来执行 3.由bash内置的(builtin)命令来执行 4.通过$PATH这个 ...

  2. ElasticSearch 监控单个节点详解

    1.介绍 集群健康 就像是光谱的一端——对集群的所有信息进行高度概述. 而 节点统计值 API 则是在另一端.它提供一个让人眼花缭乱的统计数据的数组,包含集群的每一个节点统计值. 节点统计值 提供的统 ...

  3. WINDOWS 2003系统时间24小时制与12小时显示格式不一致问题与解决

    WINDOWS 2003 SERVER系统时间24小时制与12小时格式不一致问题,而导致论坛或BLOG不能正常显示更新日期的问题及解决方法问题的方法. 在WIN2003上出现这种情况的原因是在程序中使 ...

  4. Scrapy的介绍和用法

    转载:https://www.toutiao.com/i6493421606306578958/ Scrapy是爬虫必须学会的一个框架!他确实很难搞的透彻!今天就不给大家全部介绍了!还是介绍其中的Cr ...

  5. vueAdmin使用动态路由时踩坑

    在路由守护方法router.beforeEach中如果有使用动态路由,注意此时的路由对当前的router无效,下次路由时才起效. 导致的问题是---- 当页面刷新或重新打开页面时,无法找到当前路由(跳 ...

  6. 【Excle数据透视表】如何新建数据透视表样式

    如果觉得Excle给出的数据透视表样式不符合自己的心意,可以自己定义一个数据透视表样式 步骤1 单击数据透视表区域任意单元格→数据透视表工具→设计→样式组中的下拉按钮,打开数据透视表样式库→新建数据透 ...

  7. centos安装pip Xvfb Selenium

    pip安装命令: python -V wget https://bootstrap.pypa.io/get-pip.py python get-pip.py Xvfb安装命令: yum install ...

  8. Smarty Caching缓存 ¥ 我要打赏

    Smarty Caching缓存 https://www.yiibai.com/smarty/smarty_caching.html https://www.w3cschool.cn/smarty/s ...

  9. SQL Server统计信息:问题和解决方式

    在网上看到一篇介绍使用统计信息出现的问题已经解决方式,感觉写的很全面. 在自己看的过程中顺便做了翻译. 因为本人英文水平有限,可能中间有一些错误. 假设有哪里有问题欢迎大家批评指正.建议英文好的直接看 ...

  10. idea实时编译代码

    实时编译就不解释了,出现错误的代码在命令行能给你提示出来.看图操作吧: