Java工程和Maven工程的区别

在软件开发中,Java工程和Maven工程是常见的两种项目类型。作为一名刚入行的小白,了解它们的区别是非常重要的。本文将通过流程步骤、示例代码以及图示来帮助你更好地理解这两者的异同。

流程步骤

以下是创建Java工程和Maven工程的流程步骤:

步骤 Java工程 Maven工程
1. 创建项目 创建一个新的Java项目文件夹 使用Maven命令创建新的Maven项目
2. 编写代码 编写Java源代码文件 src/main/java路径下编写Java源代码
3. 配置依赖 手动下载并引入依赖库 pom.xml文件中添加依赖
4. 编译 手动编译Java文件,生成.class文件 使用Maven命令编译
5. 运行 运行生成的.class文件 使用Maven命令运行项目

详细步骤

1. 创建项目

Java工程

在你的计算机上创建一个名为MyJavaProject的文件夹:

mkdir MyJavaProject
cd MyJavaProject
Maven工程

使用Maven命令创建一个新的Maven项目。首先确保你已安装了Maven。在终端中运行以下命令:

mvn archetype:generate -DgroupId=com.example -DartifactId=MyMavenProject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • -DgroupId=com.example:指定项目的组ID。
  • -DartifactId=MyMavenProject:指定项目的Artifact ID。
  • -DarchetypeArtifactId=maven-archetype-quickstart:指定项目的模板。
  • -DinteractiveMode=false:非交互模式,自动生成项目。

2. 编写代码

Java工程

MyJavaProject文件夹中创建Main.java文件:

// Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, Java Project!");
    }
}
Maven工程

MyMavenProject/src/main/java/com/example/路径下创建App.java文件:

// App.java
package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello, Maven Project!");
    }
}

3. 配置依赖

Java工程

你需要手动下载并将依赖库放置在项目的lib目录中,例如使用Apache Commons库。将.jar文件放在lib目录,并在Java编译时指定类路径。

javac -cp "lib/commons-lang3-3.12.0.jar" Main.java
Maven工程

MyMavenProject/pom.xml中添加依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version>
    </dependency>
</dependencies>

4. 编译

Java工程

使用Java编译器手动编译代码:

javac Main.java
Maven工程

在Maven项目目录中运行以下命令进行编译:

mvn compile

5. 运行

Java工程

运行生成的.class文件:

java Main
Maven工程

使用Maven命令运行项目:

mvn exec:java -Dexec.mainClass="com.example.App"

旅行图

以下是创建和使用Java项目与Maven项目过程的旅行图:

journey
    title Java 和 Maven 项目创建旅程
    section 创建项目
      Java项目: 5: Java工程
      Maven项目: 5: Maven工程
    section 编写代码
      Java代码编写: 4: Java工程
      Maven代码编写: 4: Maven工程
    section 配置依赖
      Java手动配置: 2: Java工程
      Maven自动配置: 5: Maven工程
    section 编译和运行
      Java手动编译: 2: Java工程
      Maven自动编译: 5: Maven工程

关系图

以下是Java工程与Maven工程之间的关系图:

erDiagram
    JAVA_PROJECT {
        string name PK "项目名"
        string version
    }
    MAVEN_PROJECT {
        string name PK "项目名"
        string version
    }
    JAVA_PROJECT ||--|| MAVEN_PROJECT :       

结论

通过上面的步骤,你可以看到Java框架的基本功能和Maven的强大之处。Java工程更依赖于手动操作,而Maven工程则通过自动化管理依赖,简化了开发流程。因此,在实际项目中,Maven通常更受欢迎。在你的开发旅程中,掌握这两者的区别将会非常有帮助。希望这篇文章能够帮助你更好地理解Java工程和Maven工程的区别!