maven 项目的创建入门

拓展阅读

maven 包管理平台-01-maven 入门介绍 + Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格

maven 包管理平台-02-windows 安装配置 + mac 安装配置

maven 包管理平台-03-maven project maven 项目的创建入门

maven 包管理平台-04-maven archetype 项目原型

maven 包管理平台-05-multi module 多模块

maven 包管理平台-06-常用技巧 实时更新快照/乱码问题/下载很慢/包依赖解决包冲突/如何导入本地 jar

maven 包管理平台-07-plugins 常见插件介绍

maven 包管理平台-08-nexus 自己搭建 maven 仓库

创建 Maven 项目

您可以像这样在 IntelliJ IDEA 中创建 Maven 项目:

rust 复制代码
File -> New -> Module -> Maven
  • 步骤 1:从原型中选择一个

  • 步骤 2:添加 GroupId、ArtifactId、Version

  • 步骤 3:设置属性

如果 Maven 构建非常缓慢,您可以添加以下代码:

ini 复制代码
archetypeCatalog=internal

运行项目

  • 在命令行中的优雅方式
arduino 复制代码
mvn clean install

mvn tomcat7:run
  • 常规方式

Tomcat 中文文档

提示

设置

您可以使用以下步骤配置 Maven 设置,然后搜索 maven

快捷键:ctrl+alt+s

报错

diff 复制代码
-Dmaven.multiModuleProjectDirectory 系统属性未设置
  1. 您可以使用低版本的 Maven 以适应您的 IDEA。

  2. 或者按照以下方式解决:

ini 复制代码
-Dmaven.multiModuleProjectDirectory=$M2_HOME

M2_HOME D:\Maven\apache-maven-3.3.9

pom.xml

  • 默认的 pom.xml
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.ryo</groupId>
    <artifactId>maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>...</dependency>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>...</plugin>
            ...
        </plugins>

        <!--maven only compile resources files under package ```resources```, you can solve it.-->

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>
  • 定义打包方式
xml 复制代码
<packaging>war</packaging>
  • 定义源文件编码
xml 复制代码
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

常用的插件汇总

  • 定义 Maven 编译器插件
xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>
  • 定义 Tomcat7 插件
xml 复制代码
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8080</port>
        <path>/</path>
        <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
    </configuration>
</plugin>
  • 如果您希望默认情况下跳过测试,但希望能够通过命令行重新启用测试, 您需要在 pom 文件中通过 properties 部分进行设置:
xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
      <skipTests>true</skipTests>
    </configuration>
</plugin>
  • 您可以使用 Maven Shade 插件 将类打包成 JAR。

maven scope 简单介绍

  • compile,缺省值,适用于所有阶段,会随着项目一起发布。
  • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
  • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
  • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
  • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
  • import 它只使用在<dependencyManagement>中,表示从其它的pom中导入dependency的配置

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
无名客06 分钟前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
风槐啊11 分钟前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
咋吃都不胖lyh14 分钟前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql
毕设源码-朱学姐17 分钟前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
boonya25 分钟前
Java内存模型与线程私有共享区域与直接内存的理解
java·开发语言·内存模型
axban36 分钟前
QT M/V架构开发实战:QAbstractItemModel介绍
java·数据库·qt
哈喽姥爷1 小时前
Spring Boot--yml配置信息书写和获取
java·数据库·spring boot·mybatis
LeaderSheepH1 小时前
Java自定义比较器详解
java·开发语言
七夜zippoe1 小时前
缓存三大劫攻防战:穿透、击穿、雪崩的Java实战防御体系(二)
java·开发语言·缓存
毕设源码-邱学长1 小时前
【开题答辩全过程】以 博物馆参观预约管理系统为例,包含答辩的问题和答案
java·eclipse