如何手动初始化项目目录结构,并在命令行用gradle编译运行项目

news2024/11/24 0:59:32

父目录 Android 开发入门 - wuyujin1997

文章目录

    • Intro
    • 纯手动
      • 手动创建项目目录结构+源码
      • gradle tasks
      • gradle wrapper
        • 执行前:
        • 执行后:
        • 执行前后对比:
      • gradle wrapper
      • gradlew 和 gradlew.bat
      • plugin java
      • 编译Java项目
      • 【重点】如何通过 gradle run 运行编译的生成物jar包?
      • 【重点】如何新增依赖
      • 更多关于 build.gradle 的配置项
    • 如何全程使用我们配置在环境变量中的gradle去处理项目?
      • 命令列表
      • 命令执行细节

Intro

常规来讲,在公司内开发都会用到IDE(集成开发环境),不过就是把一些命令行操作,一些需要手动执行的操作集成到界面上。你点一下按钮,一连串动作就在后台自动执行了,方便快捷且降低了手动操作的出错率。

不过万变不离其宗,相关工具的命令行基本用法还是需要熟悉一下。

以下内容分两部分:

  1. 啥也没有,完全从头开始初始化项目;
  2. 项目结构已存在(主要是项目目录中已经有了 build.gradle);

纯手动

大致步骤如下(参考 https://spring.io/guides/gs/gradle/ ):

  1. 手动创建项目目录结构+基本的源码文件;
  2. 使用 gradle wrapper 生成 gradle-wrapper 目录及gradlew脚本;
  3. 使用生成的 gradlew 脚本执行gradle操作。

手动创建项目目录结构+源码

mkdir -p src/main/java/hello

wuyujin1997@mac11 gradle-wrapper-show % pwd
/Users/wuyujin1997/Coderepo/gradle-wrapper-show
wuyujin1997@mac11 gradle-wrapper-show % ls
wuyujin1997@mac11 gradle-wrapper-show % mkdir -p src/main/java/hello
wuyujin1997@mac11 gradle-wrapper-show % tree
.
└── src
    └── main
        └── java
            └── hello

4 directories, 0 files
wuyujin1997@mac11 gradle-wrapper-show % 

接下来新增一个主类和一个空的build.gradle文件:
在这里插入图片描述
主类代码:

package hello;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello 世界");
    }
}

gradle tasks

因为这个时候 build.gradle 配置文件是空的,所以执行 gradle tasks 可以看到最基本的几个task:

wuyujin1997@mac11 gradle-wrapper-show % gradle tasks

> Task :tasks

------------------------------------------------------------
Tasks runnable from root project 'gradle-wrapper-show'
------------------------------------------------------------

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'gradle-wrapper-show'.
dependencies - Displays all dependencies declared in root project 'gradle-wrapper-show'.
dependencyInsight - Displays the insight into a specific dependency in root project 'gradle-wrapper-show'.
help - Displays a help message.
javaToolchains - Displays the detected java toolchains.
outgoingVariants - Displays the outgoing variants of root project 'gradle-wrapper-show'.
projects - Displays the sub-projects of root project 'gradle-wrapper-show'.
properties - Displays the properties of root project 'gradle-wrapper-show'.
resolvableConfigurations - Displays the configurations that can be resolved in root project 'gradle-wrapper-show'.
tasks - Displays the tasks runnable from root project 'gradle-wrapper-show'.

To see all tasks and more detail, run gradle tasks --all

To see more detail about a task, run gradle help --task <task>

BUILD SUCCESSFUL in 2s
1 actionable task: 1 executed
wuyujin1997@mac11 gradle-wrapper-show %

gradle wrapper

这个命令用于生成一些东西。详情见后,在执行命令后多出了什么,就是生成了什么。
gradle wrapper --gradle-version 6.0.1

执行前:

在这里插入图片描述

执行后:

在这里插入图片描述

执行前后对比:

wuyujin1997@mac11 gradle-wrapper-show % tree
.
├── build.gradle
└── src
    └── main
        └── java
            └── hello
                └── HelloWorld.java

4 directories, 2 files
wuyujin1997@mac11 gradle-wrapper-show % 
wuyujin1997@mac11 gradle-wrapper-show % gradle wrapper

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
wuyujin1997@mac11 gradle-wrapper-show % 
wuyujin1997@mac11 gradle-wrapper-show % tree          
.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── src
    └── main
        └── java
            └── hello
                └── HelloWorld.java

6 directories, 6 files
wuyujin1997@mac11 gradle-wrapper-show % 

多出了什么?

├── gradle		# gradle wrapper 目录
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties	# 主要是配置项目要用到的 【gradle 的版本及下载链接】。
├── gradlew			# 类unix环境下的脚本
├── gradlew.bat	# windows环境下的脚本

gradle wrapper

先说这玩意是干嘛的,即它为何而存在?

不同的人在初始化同一个项目的时候,有可能会因为编译工具的版本不一致导致编译错误。
那么有没有办法让大家使用同一个版本的编译工具呢?有的。
在项目代码库中的某个位置,指定项目要使用的编译工具的版本和下载链接,即gradle-wrapper.properties

其实也有另一个原因,为了让有些人不用在本地系统下载配置gradle也能成功编译本项目(用的是本项目中配置好的gradle)。
来瞄一眼这个配置文件:

在这里插入图片描述其中最重要的一个配置项就是 distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip

gradlew 和 gradlew.bat

项目目录下执行这两个脚本 ./gradlew ./gradlew.bat 和直接执行配置于环境变量path的 gradle 有何区别?
不是同一个gradle。
执行这两个脚本,会间接调用到在 ./gradle/wrapper/gradle-wrapper.properties 中配置的gradle版本。

plugin java

修改build.gradleapply plugin: 'java'
在这里插入图片描述

再次查看有哪些 task:

wuyujin1997@mac11 gradle-wrapper-show % ./gradlew tasks

> Task :tasks

------------------------------------------------------------
Tasks runnable from root project 'gradle-wrapper-show'
------------------------------------------------------------

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the classes of the 'main' feature.
testClasses - Assembles test classes.

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the 'main' feature.

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'gradle-wrapper-show'.
dependencies - Displays all dependencies declared in root project 'gradle-wrapper-show'.
dependencyInsight - Displays the insight into a specific dependency in root project 'gradle-wrapper-show'.
help - Displays a help message.
javaToolchains - Displays the detected java toolchains.
outgoingVariants - Displays the outgoing variants of root project 'gradle-wrapper-show'.
projects - Displays the sub-projects of root project 'gradle-wrapper-show'.
properties - Displays the properties of root project 'gradle-wrapper-show'.
resolvableConfigurations - Displays the configurations that can be resolved in root project 'gradle-wrapper-show'.
tasks - Displays the tasks runnable from root project 'gradle-wrapper-show'.

Verification tasks
------------------
check - Runs all checks.
test - Runs the test suite.

Rules
-----
Pattern: clean<TaskName>: Cleans the output files of a task.
Pattern: build<ConfigurationName>: Assembles the artifacts of a configuration.

To see all tasks and more detail, run gradlew tasks --all

To see more detail about a task, run gradlew help --task <task>

BUILD SUCCESSFUL in 2s
1 actionable task: 1 executed
wuyujin1997@mac11 gradle-wrapper-show %

编译Java项目

./gradlew clean
./gradlew build
./gradlew run

在这里插入图片描述但是此时执行 gradle run 会报错:

wuyujin1997@mac11 gradle-wrapper-show % ./gradlew run  

FAILURE: Build failed with an exception.

* What went wrong:
Task 'run' not found in root project 'gradle-wrapper-show'.

* Try:
> Run gradlew tasks to get a list of available tasks.
> For more on name expansion, please refer to https://docs.gradle.org/8.2/userguide/command_line_interface.html#sec:name_abbreviation in the Gradle documentation.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s
wuyujin1997@mac11 gradle-wrapper-show % 

【重点】如何通过 gradle run 运行编译的生成物jar包?

build.gradle 添加配置:

apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

然后重新 clean, build, run 即可执行jar包:

wuyujin1997@mac11 gradle-wrapper-show % ./gradlew run

> Task :run
Hello 世界

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
wuyujin1997@mac11 gradle-wrapper-show % 

【重点】如何新增依赖

修改build.gradle中的配置,然后在java代码中调用类库文件测试一下:
在这里插入图片描述
build.gradle:

apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

repositories { 
    mavenCentral() 
}

dependencies {
    implementation "joda-time:joda-time:2.2"
    testImplementation "junit:junit:4.12"
}

HelloWorld.java

package hello;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("依赖库:time = " + new org.joda.time.LocalTime());
        System.out.println(org.joda.time.LocalTime.class.getName());
        System.out.println("Hello 世界");
    }
}

在这里插入图片描述

更多关于 build.gradle 的配置项

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

// tag::repositories[]
repositories { 
    mavenCentral() 
}
// end::repositories[]

// tag::jar[]
jar {
    archiveBaseName = 'gs-gradle'
    archiveVersion =  '0.1.0'
}
// end::jar[]

// tag::dependencies[]
sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    implementation "joda-time:joda-time:2.2"
    testImplementation "junit:junit:4.12"
}
// end::dependencies[]

// tag::wrapper[]
// end::wrapper[]

如何全程使用我们配置在环境变量中的gradle去处理项目?

命令列表

pwd
mkdir gradle-test
cd gradle-test 
pwd        
gradle init		# 初始化一个项目结构,以及最重要的 build.gradle 配置文件。
pwd   
ls
tree
gradle help
gradle tasks		# 列出有哪些可以执行的 task
gradle clean		# 清除项目的编译生成物(一般为 build/ 目录)
gradle build		# 编译项目
gradle run			# 执行编译的生成物(本task不一定存在,取决于 build.gradle 中配置了哪些 plugin)

要注意的是,在这一些列操作中,gradle相关的操作都是用的哪个Gradle?
用的是我配置在环境变量中的gradle。

命令执行细节


# 打印当前目录
wuyujin1997@mac11 Coderepo % pwd
/Users/wuyujin1997/Coderepo

# 创建一个新目录
wuyujin1997@mac11 Coderepo % mkdir gradle-test

# 进入刚才创建的新目录
wuyujin1997@mac11 Coderepo % cd gradle-test 

# 再次打印当前目录
wuyujin1997@mac11 gradle-test % pwd        
/Users/wuyujin1997/Coderepo/gradle-test

# 【使用 gradle命令 初始化一个基于 gradle 来管理依赖和编译流程的项目基本结构】
wuyujin1997@mac11 gradle-test % gradle init

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4] 2

Select implementation language:
  1: C++
  2: Groovy
  3: Java
  4: Kotlin
  5: Scala
  6: Swift
Enter selection (default: Java) [1..6] 3

Generate multiple subprojects for application? (default: no) [yes, no] no
Select build script DSL:
  1: Kotlin
  2: Groovy
Enter selection (default: Kotlin) [1..2] 1

Select test framework:
  1: JUnit 4
  2: TestNG
  3: Spock
  4: JUnit Jupiter
Enter selection (default: JUnit Jupiter) [1..4] 1

Project name (default: gradle-test): 
Source package (default: gradle.test): 
Enter target version of Java (min. 7) (default: 11): 11
Generate build using new APIs and behavior (some features may change in the next minor releas

> Task :init
To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.2/samples/sample_building_java_applications.html

BUILD SUCCESSFUL in 1m 14s
2 actionable tasks: 2 executed

# 再次打印当前目录
wuyujin1997@mac11 gradle-test % pwd   
/Users/wuyujin1997/Coderepo/gradle-test

# 列出当前目录下的文件列表
wuyujin1997@mac11 gradle-test % ls
app			gradlew			settings.gradle.kts
gradle			gradlew.bat

# 树型打印当前目录下的文件夹层级/文件列表
wuyujin1997@mac11 gradle-test % tree
.
├── app
│   ├── build.gradle.kts
│   └── src
│       ├── main
│       │   ├── java
│       │   │   └── gradle
│       │   │       └── test
│       │   │           └── App.java
│       │   └── resources
│       └── test
│           ├── java
│           │   └── gradle
│           │       └── test
│           │           └── AppTest.java
│           └── resources
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts

14 directories, 8 files

# 【gradle的帮助信息】
wuyujin1997@mac11 gradle-test % gradle help
<-------------> 0% INITIALIZING [54s]
Unable to locate local Maven repository.

> Task :help

Welcome to Gradle 8.2.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see more detail about a task, run gradle help --task <task>

To see a list of command-line options, run gradle --help

For more detail on using Gradle, see https://docs.gradle.org/8.2/userguide/command_line_interface.html

For troubleshooting, visit https://help.gradle.org

BUILD SUCCESSFUL in 1m 14s
1 actionable task: 1 executed

# 【基于当前的 build.gradle 配置文件,查看gradle可执行的任务有哪些?】
# 【重点: 具体有哪些task,其实取决于 build.gradle 中配置了哪些 plugin 。】
wuyujin1997@mac11 gradle-test % gradle tasks

> Task :tasks

------------------------------------------------------------
Tasks runnable from root project 'gradle-test'
------------------------------------------------------------

Application tasks
-----------------
run - Runs this project as a JVM application

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the classes of the 'main' feature.
testClasses - Assembles test classes.

Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.

Distribution tasks
------------------
assembleDist - Assembles the main distributions
distTar - Bundles the project as a distribution.
distZip - Bundles the project as a distribution.
installDist - Installs the project as a distribution as-is.

Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the 'main' feature.

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'gradle-test'.
dependencies - Displays all dependencies declared in root project 'gradle-test'.
dependencyInsight - Displays the insight into a specific dependency in root project 'gradle-test'.
help - Displays a help message.
javaToolchains - Displays the detected java toolchains.
kotlinDslAccessorsReport - Prints the Kotlin code for accessing the currently available project extensions and conventions.
outgoingVariants - Displays the outgoing variants of root project 'gradle-test'.
projects - Displays the sub-projects of root project 'gradle-test'.
properties - Displays the properties of root project 'gradle-test'.
resolvableConfigurations - Displays the configurations that can be resolved in root project 'gradle-test'.
tasks - Displays the tasks runnable from root project 'gradle-test' (some of the displayed tasks may belong to subprojects).

Verification tasks
------------------
check - Runs all checks.
test - Runs the test suite.

To see all tasks and more detail, run gradle tasks --all

To see more detail about a task, run gradle help --task <task>

BUILD SUCCESSFUL in 2s
1 actionable task: 1 executed

# 清除项目中的编译痕迹(一般为 build/ 目录)
wuyujin1997@mac11 gradle-test % gradle clean

BUILD SUCCESSFUL in 1s
1 actionable task: 1 up-to-date

# 重新编译
wuyujin1997@mac11 gradle-test % gradle build

> Task :app:compileJava
Unable to locate local Maven repository.

BUILD SUCCESSFUL in 15s
7 actionable tasks: 7 executed

# 运行打包后的生成物【有没有这个tasks,完全取决于你的 build.gradle 中配置了哪些 plugin】
wuyujin1997@mac11 gradle-test % gradle run

> Task :app:run
Hello World!

BUILD SUCCESSFUL in 2s
2 actionable tasks: 1 executed, 1 up-to-date

# 
wuyujin1997@mac11 gradle-test % 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GAMES202】Real-Time Shadows1—实时阴影1

一、Shadow Mapping回顾 [计算机图形学]光线追踪前瞻&#xff1a;阴影图(前瞻预习/复习回顾)__Yhisken的博客-CSDN博客 关于Shadow Mapping我们在GAMES101中学过&#xff0c;如果不知道可以参考我的博客。 Shadow Mapping是光栅化时为了实现阴影的一种算法&#xff0c;而它实…

python将dataframe数据导入MySQL

文章目录 mysql操作pymysql操作导入数据并启动使用pandas导入MySQL数据库连接引擎使用to_sql方法pandas读取sqlread_sql_tableread_sql_query mysql操作 创建数据库test和table create database test;CREATE TABLE car (文章ID int, 链接 VARCHAR(255), 标题 VARCHAR(255),发…

ts中setState的类型

两种方法: 例子: 父组件 const [value, setValue] useState(); <ChildsetValue{setValue} />子组件 interface Ipros {setValue: (value: string) > void } const Child: React.FC<Ipros> (props) > {}

应用层协议设计及ProtoBuf

文章目录 一、协议概述二、消息的完整性三、协议设计3.1 协议设计实例IM即时通讯的协议设计nginx协议HTTP协议redis协议 3.2 序列化方法3.3 协议安全3.4 协议压缩3.5 协议升级 四、Protobuf4.1 安装编译4.2 工作流程4.3 标量数值类型4.4 编码原理4.4.1 Varints 编码4.4.2 Zigza…

soci源码解析

结构 use_type into_type statement backend 针对不同数据库后端的抽象 session

vue对象复制(使用es6对象扩展运算符,深拷贝)

vue3es6语法 直接上代码 const objA { name: 小飞, age: 18 };const objACopy { ...objA };console.log(对比objA与objACopy的引用地址是否相同);console.log(objA objACopy); //falseconsole.log(objA);console.log(objACopy);//对象包含对象&#xff0c;浅拷贝const objB …

pytorch cv自带预训练模型再微调

参考&#xff1a; https://pytorch.org/docs/0.4.1/torchvision/models.html https://zhuanlan.zhihu.com/p/436574436 https://blog.csdn.net/u014297502/article/details/125884141 Network Top-1 error Top-5 error AlexNet 43.45 20.91 VGG-11 30.98 11.37 VGG-13 30.07 …

动态规划完全背包之518零钱兑换 II

题目&#xff1a; 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 …

【Kafka中间件】ubuntu 部署kafka,实现Django生产和消费

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Kafka安装1.下载并安装Java2.下载和解压 Kafka3.配置 Kafka4.启动 Kafka5.创建主题和生产者/消费者6.发布和订阅消息 二、KafkaDjang…

红黑树底层原理【白话版】

一、红黑树——特殊的平衡二叉搜索树 定义&#xff1a;红黑树是一种特殊的平衡二叉搜索树。我们用它来排列数据&#xff0c;并方便以后快速检索数据。 估计看到这句话&#xff0c;你就崩溃了&#xff0c;因为这话说了等于没说。 先观察这个图。 球要不是黑色&#xff0c;要不…

console的奇妙用法

console的奇妙用法 console.log是调试 JavaScript 代码的最佳方法之一。但是本文将介绍几个与console交互的更好方法。 在vscode或者的其他ide中输入console可以看到里边提供了非常多的方法。 虽然我们通常都是用console.log&#xff0c;但是使用其他可以使调试过程变得更加容…

分布式链路追踪

文章目录 1、背景2、微服务架构下的问题3、链路追踪4、核心概念5、技术选型对比6、zipkin 1、背景 随着互联网业务快速扩展&#xff0c;软件架构也日益变得复杂&#xff0c;为了适应海量用户高并发请求&#xff0c;系统中越来越多的组件开始走向分布式化&#xff0c;如单体架构…

流水灯——FPGA

文章目录 前言一、流水灯介绍二、系统设计1.模块框图2.RTL视图 三、源码四、效果五、总结六、参考资料 前言 环境&#xff1a; 1、Quartus18.0 2、vscode 3、板子型号&#xff1a;EP4CE6F17C8 要求&#xff1a; 每隔0.2s循环亮起LED灯 一、流水灯介绍 从LED0开始亮起到LED3又回…

如何定制自己的应用层协议?|面向字节流|字节流如何解决黏包问题?如何将字节流分成数据报?

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量干货博客汇总https://blog.csdn.net/yu_cblog/c…

基于ssm的社区生活超市的设计与实现

博主介绍&#xff1a;专注于Java技术领域和毕业项目实战。专注于计算机毕设开发、定制、文档编写指导等&#xff0c;对软件开发具有浓厚的兴趣&#xff0c;工作之余喜欢钻研技术&#xff0c;关注IT技术的发展趋势&#xff0c;感谢大家的关注与支持。 技术交流和部署相关看文章…

SpringBoot拦截器

一、SpringBoot拦截器介绍 Spring Boot中的拦截器是一种用于在处理请求之前或之后执行特定操作的组件。拦截器通常用于实现对请求进行预处理、日志记录、权限验证等功能。 在Spring Boot中&#xff0c;可以使用HandlerInterceptor接口来定义自己的拦截器&#xff0c;并通过配…

流水灯实现

文章目录 一、流水灯二、代码实现三、引脚分配 一、流水灯 流水灯指的是LED像水流一样点亮&#xff0c;即LED依次点亮但不立刻熄灭&#xff0c;等到4个LED都点亮后&#xff0c;再把所有灯一次性熄灭。 二、代码实现 module horse_led(input wire clk,input wire rst_n,output…

记录管理系统

简单的记录管理系统&#xff0c;适用于保存表格数据&#xff0c;可以用来替代Excel软件保存数据&#xff0c;提供可视化拖动组件用于自定义数据列&#xff0c;数据存到数据库&#xff0c;相比于Excel&#xff0c;更易保存&#xff0c;易搜索。 例如创建合同记录数据&#xff0…

【电子学会】2023年05月图形化四级 -- 计算圆的面积和周长

计算圆的面积和周长 编写程序计算圆的面积和周长。输入圆的半径&#xff0c;程序计算出圆的面积和周长&#xff0c;圆的面积等于3.14*半径*半径&#xff1b;圆的周长等于2*3.14*半径。 1. 准备工作 &#xff08;1&#xff09;保留舞台中的小猫角色和白色背景&#xff1b; 2…

MySQL数据表高级操作

一、克隆/复制数据表二、清空表&#xff0c;删除表内的所有数据删除小结 三、创建临时表四、MySQL中6种常见的约束1、外键的定义2、创建外键约束作用3、创建主表test44、创建从表test55、为主表test4添加一个主键约束。主键名建议以"PK_”开头。6、为从表test5表添加外键&…