[JavaWeb]【十四】web后端开发-MAVEN高级

目录

一、分模块设计与开发

[1.1 分模块设计](#1.1 分模块设计)

[1.2 分模块设计-实践​编辑](#1.2 分模块设计-实践编辑)

[1.2.1 复制老项目改为spring-boot-management](#1.2.1 复制老项目改为spring-boot-management)

[1.2.2 新建maven模块runa-pojo](#1.2.2 新建maven模块runa-pojo)

[1.2.2.1 将原项目pojo复制到runa-pojo模块](#1.2.2.1 将原项目pojo复制到runa-pojo模块)

[1.2.2.2 runa-pojo引入新依赖](#1.2.2.2 runa-pojo引入新依赖)

[1.2.2.3 删除原项目pojo包](#1.2.2.3 删除原项目pojo包)

[1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖](#1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖)

[1.2.3 新建maven模块runa-utils](#1.2.3 新建maven模块runa-utils)

[1.2.3.1 将原项目utils复制到runa-utils模块](#1.2.3.1 将原项目utils复制到runa-utils模块)

[1.2.3.2 runa-utils引入依赖](#1.2.3.2 runa-utils引入依赖)

[1.2.3.3 spring-boot-management删除依赖](#1.2.3.3 spring-boot-management删除依赖)

[1.2.3.4 删除原项目utils包](#1.2.3.4 删除原项目utils包)

[1.2.3.5 在spring-boot-management(原项目)引入runa-utils依赖](#1.2.3.5 在spring-boot-management(原项目)引入runa-utils依赖)

[1.2.4 启动服务-测试](#1.2.4 启动服务-测试)

[1.3 总结](#1.3 总结)

二、继承与聚合

[2.1 继承](#2.1 继承)

[2.1.1 新建父工程模块runa-parent](#2.1.1 新建父工程模块runa-parent)

[2.1.2 设置runa-parent打包方式为pom](#2.1.2 设置runa-parent打包方式为pom)

[2.1.3 设置runa-parent父工程未springboot](#2.1.3 设置runa-parent父工程未springboot)

[2.1.4 删除 runa-parent的src](#2.1.4 删除 runa-parent的src)

[2.1.5 修改spring-boot-management父工程为runa-parent](#2.1.5 修改spring-boot-management父工程为runa-parent)

[2.1.6 删除 spring-boot-management提示异常的标签](#2.1.6 删除 spring-boot-management提示异常的标签)

[2.1.7 在runa-pojo与runa-utils设置父工程和删除](#2.1.7 在runa-pojo与runa-utils设置父工程和删除)

[2.1.8 在父工程runa-parent配置共有依赖](#2.1.8 在父工程runa-parent配置共有依赖)

[2.2 继承实现总结](#2.2 继承实现总结)

[2.3 版本锁定](#2.3 版本锁定)

[2.3.1 将runa-parent管理版本(子工程)](#2.3.1 将runa-parent管理版本(子工程))

[2.3.2 runa-utils依赖版本删除](#2.3.2 runa-utils依赖版本删除)

[2.3.3 自定义属性](#2.3.3 自定义属性)

[2.3.3.1 runa-parent设置版本](#2.3.3.1 runa-parent设置版本)

[2.3.3.2 总结](#2.3.3.2 总结)

[2.2 聚合](#2.2 聚合)

[2.2.1 runa-parent添加](#2.2.1 runa-parent添加)

[2.2.2 runa-parent maven生命周期进行打包等](#2.2.2 runa-parent maven生命周期进行打包等)

[2.3 总结](#2.3 总结)

三、私服

[3.1 介绍](#3.1 介绍)

[3.2 资源上传与下载](#3.2 资源上传与下载)

[3.3 私服配置](#3.3 私服配置)

[3.3.1 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)](#3.3.1 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码))

[3.3.2 在 mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)](#3.3.2 在 mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉))

[3.3.3 需要在 profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用](#3.3.3 需要在 profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用)

[3.3.4 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)](#3.3.4 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址))

[3.3.5 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)](#3.3.5 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试))

[3.3.6 启动本地私服](#3.3.6 启动本地私服)

[3.4 上传maven生命周期-deploy](#3.4 上传maven生命周期-deploy)

[3.5 下载](#3.5 下载)


前言:

分模块设计开发是一种软件开发方法论,它将一个大型的软件系统按照不同的功能模块进行划分,每个模块独立设计、独立开发、独立测试、独立部署和独立维护。这有助于降低整个系统的复杂度,提高系统的可维护性和可扩展性。

分模块设计开发一般包含以下步骤:

  1. 确定系统的功能模块:将整个系统划分成多个不同的功能模块,如登录模块、订单模块、支付模块等。

  2. 设计每个模块的接口:在每个模块内部,设计该模块与其他模块的接口,包括输入输出参数、数据结构等。

  3. 各个模块的独立开发:分别对每个模块进行独立的开发,每个开发人员只负责一个模块。

  4. 集成测试:在开发完成后,对各个模块进行集成测试,测试各个模块之间的接口是否正常,是否能够协同工作。

  5. 系统测试:对整个系统进行测试,模拟实际运行环境下的各种场景,保证系统整体的稳定性和可用性。

  6. 部署上线:将整个系统部署到线上环境中,进行实际的运行。

分模块设计开发的优点:

  1. 降低系统复杂度:将整个系统分模块开发,让开发人员专注于模块间的关系和模块内的逻辑,从而降低系统复杂度。

  2. 提高可维护性:每个模块独立开发,修改某个模块不影响其他模块的使用,方便维护和升级。

  3. 提高可扩展性:如果需要增加新的功能,只需要增加一个新的模块,不会影响到其他模块的运行。

  4. 提高开发效率:多个开发人员可以并行开发不同的模块,加快开发进度。

一、分模块设计与开发

1.1 分模块设计

1.2 分模块设计-实践

1.2.1 复制老项目改为spring-boot-management

新建文件夹spring_boot_project01

将之前方面复制过来改成 spring-boot-management

打开项目spring-boot-management 使用Rename 修改启动类等

1.2.2 新建maven模块runa-pojo

1.2.2.1 将原项目pojo复制到runa-pojo模块

1.2.2.2 runa-pojo引入新依赖

XML 复制代码
  <!--       lombok  -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
    </dependency>

1.2.2.3 删除原项目pojo包

1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖

XML 复制代码
        <dependency>
            <groupId>com.runa</groupId>
            <artifactId>runa-pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

1.2.3 新建maven模块runa-utils

1.2.3.1 将原项目utils复制到runa-utils模块

1.2.3.2 runa-utils引入依赖

XML 复制代码
    <!--JWT令牌-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>


     <!--        阿里云OSS依赖-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- no more than 2.3.3-->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!--        web  起步依赖  -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>3.1.2</version>
    </dependency>
    <!--       lombok  -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
    </dependency>

1.2.3.3 spring-boot-management删除依赖

XML 复制代码
    <!--JWT令牌-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>


     <!--        阿里云OSS依赖-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- no more than 2.3.3-->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.3</version>
        </dependency>

1.2.3.4 删除原项目utils包

1.2.3.5 在spring-boot-management(原项目)引入runa-utils依赖

XML 复制代码
        <dependency>
            <groupId>com.runa</groupId>
            <artifactId>runa-utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

1.2.4 启动服务-测试

1.3 总结

二、继承与聚合

2.1 继承

2.1.1 新建父工程模块runa-parent

2.1.2 设置runa-parent打包方式为pom

XML 复制代码
<packaging>pom</packaging>

2.1.3 设置runa-parent父工程未springboot

XML 复制代码
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

2.1.4 删除 runa-parent的src

2.1.5 修改spring-boot-management父工程为runa-parent

XML 复制代码
 <parent>
        <groupId>com.runa</groupId>
        <artifactId>runa-parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../runa-parent/pom.xml</relativePath>
    </parent>
    

2.1.6 删除 spring-boot-management提示异常的标签

XML 复制代码
<groupId>com.runa</groupId>

2.1.7 在runa-pojo与runa-utils设置父工程和删除<groupId>

2.1.8 在父工程runa-parent配置共有依赖

将子工程共有的依赖剪切到父工程

2.2 继承实现总结

2.3 版本锁定

2.3.1 将runa-parent管理版本(子工程)

XML 复制代码
 <!--  统一管理版本标签-->
  <dependencyManagement>
    <dependencies>
      <!--JWT令牌-->
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.1</version>
      </dependency>
      <!--        阿里云OSS依赖-->
      <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.15.1</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
      </dependency>
      <!-- no more than 2.3.3-->
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.3</version>
      </dependency>
      <!--        web  起步依赖  -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>3.1.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

2.3.2 runa-utils依赖版本删除

XML 复制代码
 <dependencies>

    <!--JWT令牌-->
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>      
    </dependency>
    <!--        阿里云OSS依赖-->
    <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>    
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>   
    </dependency>
    <dependency>
      <groupId>javax.activation</groupId>
      <artifactId>activation</artifactId>      
    </dependency>
    <!-- no more than 2.3.3-->
    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-runtime</artifactId>   
    </dependency>
    <!--        web  起步依赖  -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>     
    </dependency>


  </dependencies>

2.3.3 自定义属性

2.3.3.1 runa-parent设置版本

XML 复制代码
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <lombok.version>1.18.24</lombok.version>
  </properties>
XML 复制代码
  <!--       lombok  -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok.version}</version>
    </dependency>

其他依次设置

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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.2</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.runa</groupId>
  <artifactId>runa-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>runa-parent</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <lombok.version>1.18.24</lombok.version>
    <jjwt.version>0.9.1</jjwt.version>
    <aliyun.oss.version>3.15.1</aliyun.oss.version>
    <jaxb.version>2.3.1</jaxb.version>
    <activation.version>1.1.1</activation.version>
    <jaxb.runtime.version>2.3.3</jaxb.runtime.version>
<!--    他好像不需要版本管理 因为他是spring-boot,runa-parent本身就是继承springboot-->
    <spring-boot-starter-web>3.1.2</spring-boot-starter-web> 
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!--       lombok  -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok.version}</version>
    </dependency>
  </dependencies>

      <!--  统一管理版本标签-->
  <dependencyManagement>
    <dependencies>
      <!--JWT令牌-->
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>${jjwt.version}</version>
      </dependency>
      <!--        阿里云OSS依赖-->
      <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>${aliyun.oss.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>${activation.version}</version>
      </dependency>
      <!-- no more than 2.3.3-->
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${jaxb.runtime.version}</version>
      </dependency>
      <!--        web  起步依赖  -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
<!--        下面这个都可以删除-->
        <version>${spring-boot-starter-web}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>

2.3.3.2 总结

2.2 聚合

2.2.1 runa-parent添加

XML 复制代码
<!--  聚合其他模块-->
  <modules>
    <module>../runa-pojo</module>
    <module>../runa-utils</module>
    <module>../spring-boot-management</module>

  </modules>
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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.2</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.runa</groupId>
  <artifactId>runa-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

<!--  聚合其他模块-->
  <modules>
    <module>../runa-pojo</module>
    <module>../runa-utils</module>
    <module>../spring-boot-management</module>

  </modules>


  <name>runa-parent</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <lombok.version>1.18.24</lombok.version>
    <jjwt.version>0.9.1</jjwt.version>
    <aliyun.oss.version>3.15.1</aliyun.oss.version>
    <jaxb.version>2.3.1</jaxb.version>
    <activation.version>1.1.1</activation.version>
    <jaxb.runtime.version>2.3.3</jaxb.runtime.version>
<!--    他好像不需要版本管理 因为他是spring-boot,runa-parent本身就是继承springboot-->
    <spring-boot-starter-web>3.1.2</spring-boot-starter-web>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!--       lombok  -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok.version}</version>
    </dependency>
  </dependencies>

      <!--  统一管理版本标签-->
  <dependencyManagement>
    <dependencies>
      <!--JWT令牌-->
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>${jjwt.version}</version>
      </dependency>
      <!--        阿里云OSS依赖-->
      <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>${aliyun.oss.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>${activation.version}</version>
      </dependency>
      <!-- no more than 2.3.3-->
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${jaxb.runtime.version}</version>
      </dependency>
      <!--        web  起步依赖  -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
<!--        下面这个都可以删除-->
        <version>${spring-boot-starter-web}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>

2.2.2 runa-parent maven生命周期进行打包等

2.3 总结

三、私服

3.1 介绍

3.2 资源上传与下载

3.3 私服配置

私服配置说明

访问私服:http://192.168.150.101:8081

访问密码:admin/admin

下载地址

使用私服,需要在maven的settings.xml配置文件中,做如下配置:

3.3.1 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)

XML 复制代码
<server>
    <id>maven-releases</id>
    <username>admin</username>
    <password>admin</password>
</server>
    
<server>
    <id>maven-snapshots</id>
    <username>admin</username>
    <password>admin</password>
</server>

3.3.2 在 mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)

XML 复制代码
<mirror>
    <id>maven-public</id>
    <mirrorOf>*</mirrorOf>
    <url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror>

3.3.3 需要在 profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用

XML 复制代码
<profile>
    <id>allow-snapshots</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    <repositories>
        <repository>
            <id>maven-public</id>
            <url>http://192.168.150.101:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</profile>

3.3.4 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)

XML 复制代码
<distributionManagement>
    <!-- release版本的发布地址 -->
    <repository>
        <id>maven-releases</id>
        <url>http://192.168.150.101:8081/repository/maven-releases/</url>
    </repository>
    
    <!-- snapshot版本的发布地址 -->
    <snapshotRepository>
        <id>maven-snapshots</id>
        <url>http://192.168.150.101:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

3.3.5 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)

3.3.6 启动本地私服

1、解压: apache-maven-nexus.zip

2、进入目录: apache-maven-nexus\nexus-3.39.0-01\bin   #(注意解压不要有中文路径)

3、启动服务:双击 start.bat

4、访问服务:localhost:8081

5、私服配置说明:将上述配置私服信息的 192.168.150.101 改为 localhost

3.4 上传maven生命周期-deploy

3.5 下载

新项目配置依赖

要验证下载,先将本地仓库的删除掉

相关推荐
新手小袁_J8 分钟前
JDK11下载安装和配置超详细过程
java·spring cloud·jdk·maven·mybatis·jdk11
呆呆小雅9 分钟前
C#关键字volatile
java·redis·c#
Monly219 分钟前
Java(若依):修改Tomcat的版本
java·开发语言·tomcat
Ttang2312 分钟前
Tomcat原理(6)——tomcat完整实现
java·tomcat
钱多多_qdd22 分钟前
spring cache源码解析(四)——从@EnableCaching开始来阅读源码
java·spring boot·spring
waicsdn_haha24 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
Q_192849990635 分钟前
基于Spring Boot的摄影器材租赁回收系统
java·spring boot·后端
Code_流苏37 分钟前
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
java·ide·vscode·搭建·java开发环境
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架