maven

环境安装

IntelliJ IDEA下载安装(社区版永久免费)

JDK下载安装,

java默认安装貌似就配置好环境变量了

但是idea默认安装的maven没有环境变量 ,后面打包时会用到mvn命令

所以要配置下maven的环境变量,首先到idea安装目录中搜mvn.cmd

把mvn.cmd所在目录,放到环境变量的path中即可

配置完毕后可以使用mvn -version测试

如果发现配置完命令行中可以使用mvn,但是ij中命令行找不到这个命令,直接重启电脑

 

idea安装后会自带maven不需要二次安装,但是不包含jdk,需要单独安装,并在如下位置配置

 

 

mysql安装

 https://www.cnblogs.com/zhangkanghui/p/9613844.html

https://juejin.cn/post/6995927529164898317

 

 

Maven工程

Maven工程创建

 

 

Maven工程设置

 

 

注意下idea自带maven的路径

 

Maven 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.test</groupId>
    <artifactId>testAA</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
<!--这个属性定义了 Java 源代码的编译版本。这个例子中设置为 8,表示使用 Java 8 的语法编译源代码 -->
<maven.compiler.source>8</maven.compiler.source>
<!--
这个属性定义了编译后的字节码版本。这个例子中同样设置为 8,表示编译后的字节码会兼容 Java 8 的运行环境
 -->
<maven.compiler.target>8</maven.compiler.target> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> <dependencies> <!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> <!-- mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!-- jwt--> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.15.0</version> </dependency> <!-- lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

  

<‌modelVersion>标签用于指示POM(Project Object Model)的版本。这是一个重要的元素,因为它告诉Maven如何解析和处理pom.xml文件。<‌modelVersion>是一个必需的元素,它应该位于POM文件的顶部。
<‌modelVersion>的值是4.0.0。这是目前最广泛使用的POM版本,它支持Maven 2.x 和 3.x 系列。当你创建一个新的Maven项目时,默认情况下会使用这个版本。

 

<‌properties> 标签是用于在 Maven 工程的 pom.xml 文件中定义一些项目属性的。这些属性可以在整个 POM 文件中使用
eg:
<‌build>
    <‌plugins>
        <‌plugin>
            <‌groupId>org.apache.maven.plugins<‌/groupId>
            <‌artifactId>maven-compiler-plugin<‌/artifactId>
            <‌version>3.8.1<‌/version>
            <‌configuration>
                <‌source>${maven.compiler.source}<‌/source>
                <‌target>${maven.compiler.target}<‌/target>
            <‌/configuration>
        <‌/plugin>
    <‌/plugins>
<‌/build>

  

 

<‌parent> 标签在 Maven 工程的 pom.xml 文件中表示当前项目继承自一个父项目。
在这个例子中,父项目是 Spring Boot Starter Parent。继承父项目可以让当前项目共享父项目的配置,从而简化项目的配置和依赖管理。
在给定的代码片段中,<‌parent> 标签包含以下三个子标签:
1. <‌groupId>: 组织或项目的唯一标识符。在这个例子中,groupId 是 "org.springframework.boot",表示这个父项目属于 Spring Boot 项目。
2. <‌artifactId>: 项目的唯一基本名称。在这个例子中,artifactId 是 "spring-boot-starter-parent",表示这个父项目是 Spring Boot Starter Parent。
3. <‌version>: 项目的版本号。在这个例子中,version 是 "2.3.4.RELEASE",表示当前项目使用的 Spring Boot Starter Parent 的版本是 2.3.4.RELEASE。
通过使用 <‌parent> 标签,可以在当前项目中继承父项目的依赖和属性配置。这样可以避免在每个子项目中重复相同的配置,从而简化项目的构建和管理。

Maven工程直接运行

打开主类,直接点运行

 

 

Maven工程构建

maven可执行命令

 

 

 

Build工程时,找不到maven插件报错修改

https://blog.csdn.net/zsd_fresh/article/details/129913679

 

Maven打可执行jar包

打可执行jar包注意事项

1 jar包中的META-INF/MANIFEST.MF中指定Main-Class(程序入口类)

2 要能加载到依赖包

 

使用maven生成jar文件的三种方式

https://zhuanlan.zhihu.com/p/345268828

 

maven打包可运行jar包

https://blog.csdn.net/guochunyang/article/details/127083553

 

临时

 https://www.jb51.net/article/261489.htm

 

 

 

Maven部署

要将Maven工程打包并部署到线上服务器,请按照以下步骤操作:
1. 打包Maven项目 在项目的根目录下,打开终端或命令行工具,执行以下命令: mvn clean package 这会清理旧的构建文件,然后对项目进行编译、测试和打包。打包成功后,你会在target目录下找到生成的包文件(例如:your-project-name-1.0.0.jar或your-project-name-1.0.0.war)。
 
 
2. 将打包好的文件传输到线上服务器 使用scp(安全复制)命令将打包好的文件传输到线上服务器。在终端或命令行工具中执行以下命令(请根据实际情况替换<‌server-ip>、<‌username>、<‌remote-path>和<‌local-path>): scp <‌local-path>/target/your-project-name-1.0.0.jar <‌username>@<‌server-ip>:<‌remote-path> 例如: scp target/your-project-name-1.0.0.jar user@example.com:/home/user/app
 
 
3. 在线上服务器上部署项目 登录到线上服务器,
然后根据项目类型选择合适的部署方式。
- 如果是一个Spring Boot应用,可以直接运行以下命令启动应用: java -jar /path/to/your-project-name-1.0.0.jar
- 如果是一个Java Web应用(WAR包),需要部署到Java应用服务器(如Tomcat、Jetty等)上。将WAR包上传到服务器的webapps目录下,然后启动应用服务器。
 
4. 验证部署是否成功 在浏览器中输入服务器的IP地址和应用的端口号,以及应用的访问路径,查看应用是否正常运行。 例如:http://<‌server-ip>:8080/your-project-name 根据上述步骤,你应该已经成功将Maven工程打包并部署到线上服务器了。在实际部署过程中,你可能需要根据项目实际情况进行一些调整。
 
 

数据库

数据库mysql配置

Maven 工程使用 MySQL 时,数据库的创建和配置通常在以下几个步骤中完成。
1. 安装和运行 MySQL 服务器: 首先,您需要在本地或远程服务器上安装 MySQL 数据库服务器。安装完成后,确保 MySQL 服务正在运行。
 
2. 创建数据库和用户: 使用 MySQL 命令行工具或图形界面工具(如 MySQL Workbench)创建一个新的数据库和用户。为您的 Maven 项目创建一个专用的数据库和用户是个好主意。 例如,在 MySQL 命令行中,您可以使用以下命令创建数据库和用户: CREATE DATABASE mydb; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;
 
 
3. 在 Maven 工程中添加 MySQL 驱动依赖: 在 Maven 工程的 pom.xml 文件中,添加 MySQL 驱动的依赖项。这将允许您的项目使用 MySQL 数据库。 <‌dependencies> ... <‌dependency> <‌groupId>mysql<‌/groupId> <‌artifactId>mysql-connector-java<‌/artifactId> <‌version>8.0.26<‌/version> <‌/dependency> ... <‌/dependencies> 请注意,您需要根据需求更改版本号。
 
4. 配置数据库连接信息: 在 Maven 项目的 src/main/resources 目录下创建一个配置文件(如 application.properties 或 application.yml),并添加数据库连接信息。例如,如果您使用的是 Spring Boot 项目,可以在 application.properties 文件中添加以下内容: spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=myuser spring.datasource.password=mypassword spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 确保将 mydb、myuser 和 mypassword 替换为您在第 2 步中创建的数据库和用户的名称。
 
至于数据库文件的位置,它通常位于 MySQL 服务器的数据目录中,而不是 Maven 项目的目录中。例如,在 Linux 上,默认数据目录可能是 /var/lib/mysql/;在 Windows 上,可能是 C:\ProgramData\MySQL\MySQL Server 8.0\Data\。不过,这取决于您的 MySQL 安装配置。
 

Navcat导入.sql数据库

https://blog.csdn.net/Ang_go/article/details/128577554

新建数据库,然后在数据库上右键,运行sql文件

 

Navcat创建数据库字符集和排序选择

 https://blog.csdn.net/SADADADG/article/details/126845469

 

报错记录

maven运行报错,java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
 
maven运行报错,java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
从您提供的错误信息来看,问题是在连接MySQL数据库时遇到了“Public Key Retrieval is not allowed”的错误。这是因为在连接MySQL 8.0+时,使用了caching_sha2_password身份验证插件,而该插件需要在JDBC URL中允许public key retrieval。 要解决这个问题,您需要在JDBC URL中添加allowPublicKeyRetrieval=true。以下是一个例子: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC 请注意,这里的useSSL=false是为了示例目的,不建议在生产环境中禁用SSL。在实际应用中,请确保正确配置SSL。 如果这是一个Maven项目,请确保您在pom.xml文件中正确配置了JDBC驱动。例如,对于MySQL 8.0+,您可以添加以下依赖: <‌dependency> <‌groupId>mysql<‌/groupId> <‌artifactId>mysql-connector-java<‌/artifactId> <‌version>8.0.27<‌/version> <‌/dependency> 请根据实际情况调整数据库URL、数据库名称和驱动版本。 希望这些信息能帮助您解决问题。如果问题仍然存在,请提供更多关于您的项目配置和代码的详细信息。
 

常见问题

修改依赖等配置后各种报错

pom.xml配置后,有时候需要

1 mvn clean install (maven面版上有这两个命令)

这个命令实际上由两个部分组成:`clean` 和 `install`。
1. `clean`:此命令用于清理项目中生成的所有临时文件,例如编译过程中生成的 `.class` 文件和构建输出目录(通常是 `target` 目录)。执行此命令可以确保在构建项目之前,删除所有旧的构建输出,从而避免构建错误或者不一致的产物。
2. `install`:此命令用于将项目编译、测试、打包并安装到本地 Maven 仓库。这样,其他依赖于此项目的 Maven 项目可以从本地仓库获取此项目的构建产物。以下是 `install` 命令执行的主要步骤:
- `compile`:编译项目源代码。
- `test`:运行项目的单元测试。
- `package`:根据项目的类型(例如 JAR、WAR 或 EAR)将编译后的代码打包。
- `verify`:对打包后的产物进行验证,确保其满足质量标准。
- `install`:将打包后的产物安装到本地 Maven 仓库,以供其他项目使用。
在执行 `mvn clean install` 命令时,Maven 会按照上述顺序执行这些步骤。如果任何步骤失败,整个命令将失败,后续步骤不会执行。这有助于确保项目的构建过程是可靠且一致的。
 

2 build面板上sync

Maven 工程的 "Build" 下的 "Sync" 功能主要用于同步项目的依赖关系和构建配置。在使用 Maven 管理项目时,这个功能有以下作用:
**依赖同步**:当你在 `pom.xml` 文件中添加或更改依赖时,使用 "Sync" 功能可以在 IntelliJ IDEA 中自动下载并配置这些依赖。这样,你就可以在项目中直接使用这些依赖,而无需手动下载或配置。
 **构建配置同步**:此功能还会同步 Maven 的构建配置,例如编译选项、插件配置等。这样,当你修改了这些配置信息后,IntelliJ IDEA 会自动将这些更改应用到项目中,确保项目的构建和运行与 Maven 配置保持一致。
**项目结构同步**:如果你使用 Maven 模块管理项目结构,"Sync" 功能会自动更新 IntelliJ IDEA 中的模块结构以匹配 Maven 配置。这有助于确保项目在不同环境中的一致性
**Maven 生命周期**:同步操作还可以触发 Maven 生命周期的部分阶段,例如 `generate-sources`、`process-resources` 等。这有助于确保在 IntelliJ IDEA 中构建和运行项目时,所需的代码和资源文件是最新的。
 

3 pow.xml引入新依赖包,在使用时提示找不到

java: 程序包org.springframework.data.redis.core不存在

解决方法

https://blog.51cto.com/u_16099328/6582788

先clean,install,

然后File/Invalidata caches,刷新依赖

 

常用清理方法

 

 

 

 
posted @ 2023-08-05 17:25  00000000O  阅读(3)  评论(0编辑  收藏  举报