java从小白到小白(基于github大佬的java PlayPiano)

目录

00.梦开始的地方

01.圆梦第一章

maven的下载与安装

maven环境配置

maven仓库配置

maven镜像仓库配置(阿里云)

(选配)配置maven全局jdk版本

EX1:间章(选读:手动构建maven项目)不感兴趣的友友们可以直接跳过

架构

编译运行

其他maven命令

清除

测试

打包

安装到本地仓库

EX2:间章(选读:插件构建maven项目)

创建工程

创建java工程

创建web工程

02.圆梦第二章

配置maven

手工创建maven项目

代码编写

代码调试

代码调试(番外篇)

使用maven原型构建Java项目

使用maven原型构建Java web项目

导入comcat插件启动web工程

maven构建的Java web工程中pom.xml的部分注解

03圆梦终章

04风起,再启程!


00.梦开始的地方

作为一个黑白键盘琴爱好者。今天,朋友给我发来一个src,说是可以用java实现弹钢琴的功能,还是兄弟懂我(手动doge)。但是本人现在的java水平还停留在idea>-新建项目>-package>-.java的水准上。

本期源码附上(来自github的某大佬):playPiano/src/main at main · gulihua10010/playPiano · GitHub

实际上的工程
我以为的工程

当时,我在窃喜Test放的还算是比较明显。。。But!正所谓我永远不知道明天和意外哪个会先来

(一无所知的doge) 小问题,改包名。But!!!不改不要紧,一改红一片

。。。赶快来个大佬告诉我这是什么鬼!!!

01.圆梦第一章

doge(应该还算比较机智的)我就突然(真的很突然)想起来了一直都在憧憬的那个完整的java项目的步骤,里面好像有一个叫Maven的东西。对!Maven!!!咩...吻...

于是,马不停蹄的去b站大学,搜了一下。找到了一个讲的相对来说时间比较短的课程。黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必会管理工具maven_哔哩哔哩_bilibili

据听说尚硅谷里老师的课也不错,友友们有兴趣的也可以去看看,那个时间比较新(2022的哦)

于是,我就看到了这一幕,这,似曾相识的感觉(当时给孩子高兴坏了)

 --------------------------------------------------火速maven整起---------------------------------------------------------

maven的下载与安装

maven官网下载地址:Maven – Download Apache Maven

 可以看到从上到下的四个文件分别是linux安装文件、windows安装文件、linux源码、windows源码

我们下载第二个,也就是apache-maven-3.8.6-bin.zip

下载完成后,安装过程也很清爽,直接将zip文件解压到自己喜欢的目录就可以了,就像这样

 (划重点)大家记好这个目录,conf文件夹里的settings.xml日后还会用得到

maven环境配置

设置maven自身的运行环境——配置MAVEN_HOME(以win11为例)

桌面右键单击此电脑,找到属性->高级系统设置->环境变量

 新建变量MAVEN_HOME,变量值为刚才解压maven的目录(注意区分大小写)

  再找到PATH,双击打开,为其新建%MAVEN_HOME%\bin变量(注意区分大小写)

 确定,确定,确定...一直点到最后,以免保存不成功

maven仓库配置

此时的本地仓库位于C盘(系统盘)->Users->用户->.m2->repository,后期仓库用于储存jar包,可能后期会很大,我们将其移动到别的盘下。在这里,我以移动至D盘为例介绍(系统盘大空间的大佬可以忽视)据说有4T硬盘的大佬。

首先在D盘新建文件夹命名为maven,在maven里新建文件夹命名为repository

首先我们打开maven安装目录下conf文件夹下的settings.xml文件(记事本就可以打开,我用的notepad看起来会舒服一下)

 找到这样一段代码()我的是在49-54行

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

 在下面添加  <localRepository>刚刚创建的repository的地址</localRepository>,然后保存

maven镜像仓库配置(阿里云)

阿里云链接附上:仓库服务 一般我们用绿色圈起来的

还是,先打开maven安装目录下conf文件夹下的settings.xml文件,找到mirrors标签,一般在150行上下。

在<mirrors></mirrors>标签中添加 mirror 子节点:

	<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>cental</mirrorOf>
      <name>Nexus aliyun</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

(选配)配置maven全局jdk版本

找到未在注释标签内的<profiles></profiles>,通常在最底部上方,然后在他们之中添加指定jdk代码。

<!-- java version --> 
<profile>
  <id>jdk-1.8</id>
  <activation>
	<activeByDefault>true</activeByDefault>
	<jdk>1.8</jdk>
  </activation>

  <properties>
	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
	<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  </properties>
</profile>

EX1:间章(选读:手动构建maven项目)不感兴趣的友友们可以直接跳过

架构

创建测试项目文件夹-->在其内部创建src文件夹-->在其内部创建两个文件夹main、test-->分别在main、test中创建java、resources文件夹

在main-->java中打包com-->jiaan,编写主程序

package com.jiaan;

public class Demo{
    public String say(String name){
            System.out.println("hello" + name);
            return "hello" + name;
    }
}

在test-->java中打包com-->jiaan,编写测试程序

package com.jiaan;

import org.junit.Test;
import org.junit.Assert;

public class DemoTest{
    @Test
    public void testSay(){
        Demo d = new Demo();
        String ret = d.say("maven");
        Assert.assertEquals("hellomaven",ret);
    }
}

编写maven描述文件pom.xml在src同层目录下创建pro.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.jiaan</groupId>
    <artifactId>hello_maven</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

</project>

编译运行

win+r 运行cmd,进入src与pom所在目录

cd E:\桌面\hello_maven

编译maven,开始下载所用的插件

mvn compile
出现这个界面即为编译成功,开始下载插件

至此编译完成。编译一个源文件至E:\桌面\hello_maven\target\classes

其他maven命令

清除

mvn clean //清理(删除创建的target目录及文件)

测试

mvn test //测试(加载测试组件)

如果在测试类里Assert.aeesrtEquals中hellomaven与demo类中字符拼接结果不同(多打了或少打空格符),则会出现以下报错信息

 测试成功

测试报告将储存于项目根目录\target\surefire-reports

打包

mvn package

maven会完成编译、测试等过程

最终结果

安装到本地仓库

mvn instal

 在安装jar包时,由group id决定第一层目录,项目名称artifactId决定二级目录,版本号决定第三级目录。

EX2:间章(选读:插件构建maven项目)

创建工程

mvn archetype:generate
    -DgroupId={project-packaging}
    -DartifactId={project-name}
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false

创建java工程

mvn archetype:generate
    -DgroupId=com.jiaan
    -DartifactId=java-hellomaven
    -DarchetypeArtifactId=maven-archetype-quickstart
    -Dversion=0.0.1-snapshot
    -DinteractiveMode=false

创建web工程

mvn archetype:generate
    -DgroupId=com.jiaan
    -DartifactId=web-hellomaven
    -DarchetypeArtifactId=maven-archetype-webapp
    -Dversion=0.0.1-snapshot
    -DinteractiveMode=false

02.圆梦第二章

配置maven

首先新建一个空项目(注意是空项目哦)

在文件(File)-->项目设置(Project Settings)-->项目(Project)-->SDK设置java版本,以1.8为例

 在文件(File)-->设置(Settings)-->搜索maven,将maven主路径(Maven Home directory)更改为我们刚刚要求记住的路径(解压maven安装文件的路径)

然后更改用户设置文件(User settings file):点击重写(Override),目录为maven安装路径\conf\settings.xml

手工创建maven项目

代码编写

在这里,我介绍两种方法:

第一种:点击文件(File)-->新建(New)-->新模块(New Module)

 第二种:点击右上角的小齿轮-->项目结构(Project Structure)-->模块(Module)-->新建模块(New)

 接着,如需要使用原型的则使用Maven Archetype,这里我们创建常规Maven模块,使用新建模块(New Module),填写组ID(group id)与工作ID(artifactId即项目名称),点确定完成。

 

 之后我们为其添加一个test目录下的resources文件夹(单击test目录,右键新建文件夹)并标注各个文件夹种类(选中文件夹,单击对应种类的样式按钮)

修改前
修改后

可以看到创建成功,等待右侧maven控制面板的插件下载完成

使用   <dependencies> </dependencies> 子标签<dependency></dependency>添加我们需要的测试jar包junit

    <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    </dependencies>

 一开始报错是因为还没有下载完jar包,等左右两边外部库(External Libraries)均加载好后,就可以看到junit包。标黄的警告和弱警告是因为junit版本不是最新,不用管,或者更新一下也可以。

 在此顺便附上pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>com.jiaan</groupId>
    <artifactId>java01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    </dependencies>
</project>

给main-->java和test-->java中写入代码(我们在间章EX1中写到过,对具体架构感兴趣的友友们可以返回去看看)

package com.jiaan;

public class Demo{
    public String say(String name){
        System.out.println("hello " + name);
        return "hello" + name;
    }
}
package com.jiaan;

import org.junit.Test;
import org.junit.Assert;

public class DemoTest{
    @Test
    public void testSay(){
        Demo d = new Demo();
        String ret = d.say("jiaan");
        Assert.assertEquals("hello jiaan",ret);
    }
}

代码调试

使用右侧maven面板里的生命周期编译,双击需要的步骤即可

经过编译(compile)-->测试(test),发现错误,让我们到maven-project\java01\target\surefire-reports去查看测试结果

 发现junit.assertEquals返回值比较错误。检查源码发现少打了一个空格(doge不好意思,主要为了是给大家引入一下target目录  doge)

 我们把这个空格加上,继续clean-->compile-->test

成功了

代码调试(番外篇)

在这里,我给出另外一种快捷调试(doge其实也不怎么快捷,但是后面断点测试一点会使用到)

点击右上角圈出来的这个小三角-->编辑配置(Edit Configurations...)

 点击加号-->选择Maven-->自定义一个名称(name)-->设置其工作的目录(Working directory)-->输入要进行的操作(Command line)-->确定(OK)

可以 看到在运行配置中已经有了我们刚刚自定义的操作,可以直接点击运行。如果要再添加运行配置,操作同上。

使用maven原型构建Java项目

首先,我们将刚刚的java01收起来,用之前介绍过的任意一种方法新建模块,这里用我自己习惯的方法建了。

熟悉的模块(Module)--> + -->新建模块(New)

这一次,我们选择Maven 原型(Maven Archrtype),自定义名称(即工作id),输入quick查找maven-archetype-quickstart原型来创建java,再为其编辑组id(group ID),完成创建。

 啥也没有,先让它继续哗啦哗啦的加载一会

加载出来是这个样子的,还带了两个App,AppTest不过显然没有什么作用,删掉就可以了。而且,在main和test目录下,都没有resources文件夹,我们用之前说到的手工方法为其添加并标注文件夹类型标识。

再啰嗦一遍操作,单击选中目录文件夹-->右键新建-->目录

我们发现,贴心的idea和maven已经给出了我们选项,直接单击就ok了

 把没什么用的那两个del掉就创建完成了

使用maven原型构建Java web项目

同刚才一样,我们将刚刚的java02收起来,再次新建模块。模块(Module)--> + -->新建模块(New)

选择Maven 原型(Maven Archrtype),自定义名称(即工作id)。这一次,我们输入web查找maven-archetype-quickstart原型来创建java web程序,同样,编辑组id(group ID),完成创建。

是不是看着短了点什么东西???

补全吧,和刚刚一样直接右键,新建目录,都有预设,不用自己一个一个的敲

使用原型构建项目结束!

导入comcat插件启动web工程

首先,我们到maven的坐标库中,查找tomcat maven,找到此段复制

链接附上: https://mvnrepository.com/search?q=tomcat%20maven&p=1

或到tomcat官网,找到 Maven Plugin,选择maven最新的2.2版本  打<build>标签,导入tomcat

<!--  构建-->
  <build>
    <finalName>web01</finalName>
<!--    设置插件-->
      <plugins>
<!--        具体的插件配置-->
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
      </plugins>
  </build>

 等待maven面板导入完成

 在tomcat7中打开tomcat7:run,启动服务器,得到一个链接,单击链接即可打开。

 我们还可以通过在<plugin></plugin>标签中添加<port>标签设置其端口,添加<path>标签设置虚拟路径以提高其访问速度

 <configuration>
            <port>80</port>
            <path>/</path>
          </configuration>

为了方便运行,我们也可以为其添加一个调试配置,方法位于手动创建maven项目-->代码调试(番外篇)。编辑其名称,设置工作目录为web01,运行tomcat7:run

 即可在右上角快速运行

至此,idea下maven配置已结束!!!

maven构建的Java web工程中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">
<!--  指定maven pom的模型版本-->
  <modelVersion>4.0.0</modelVersion>

<!--  打包方式,web工程打包为war,java工程打包为jar-->
  <packaging>war</packaging>

<!--  组织id,通常为域名反写,作为坐标-->
  <groupId>com.jiaan</groupId>

<!--  项目名称,通常为项目名-->
  <artifactId>web01</artifactId>

<!--  版本号:release为开发板,snapshot为完成版-->
  <version>1.0-SNAPSHOT</version>

<!--  名称-->
  <name>web01 Maven Webapp</name>
  <url>http://maven.apache.org</url>

<!--  设置当前工程的所有依赖-->
  <dependencies>
<!--    具体的依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
<!--  构建-->
  <build>
    <finalName>web01</finalName>
<!--    设置插件-->
      <plugins>
<!--        具体的插件配置-->
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <port>80</port>
            <path>/</path>
          </configuration>
        </plugin>
      </plugins>
  </build>
</project>

03圆梦终章

不忘初心,牢记使命。现在回到我们梦开始的地方——Idea 演奏piano

按刚刚的逻辑,新建项目,将对应的文件放好。当然会大片红色波浪,接下来就等待dependency的jar包解析完成吧!!!

test项目,报了一个无法访问,这里是因为新版的maven有一个类似http锁的东西

找到maven安装目录下conf文件夹下的settings.xml文件,把这一段注释掉。继续启动项目。

起风啦!!!!!!!!!!!

 巴巴托斯的保佑

04风起,再启程!

通过对一个项目的加载,了解到了maven最基础的一些安装、配置和使用。

本人现在java刚刚学习结了面向对象,应该算是java se,听了个一知半解,还没有系统学习java web。

隐隐约约中好像发现piano中有spring或者是spring boot的影子。

对于本篇,还有许许多多的不理解之处,如junit是什么?@Test又是什么神奇的东东?web?spring?spring boot?MyBatis?SSM?这中间有什么神奇的联系?

以及一些以我现在的知识还不能确定是不是属于java编程的知识点,比如sql、Docker

如果有路过的大佬,方便的话还请指点迷津。听君一席话,胜读十年书!!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值