imtoken钱包登录入口|maven官网

作者: imtoken钱包登录入口
2024-03-13 20:37:27

Maven – Welcome to Apache Maven

Maven – Welcome to Apache Maven

Apache/

Maven/

Welcome to Apache Maven

| Last Published: 2024-03-12

|

Get Sources

Download

Welcome

License

About Maven

What is Maven?

Features

Download

Use

Release Notes

Documentation

Maven Plugins

Maven Extensions

Index (category)

User Centre

Plugin Developer Centre

Maven Repository Centre

Maven Developer Centre

Books and Resources

Security

Community

Community Overview

Project Roles

How to Contribute

Getting Help

Issue Management

Getting Maven Source

The Maven Team

Project Documentation

Project Information

Maven Projects

Maven

Archetypes

Extensions

Parent POMs

Plugins

Skins

Archetype

Artifact Resolver

Doxia

Indexer

JXR

Plugin Testing

Plugin Tools

Resource Bundles

SCM

Shared Components

Surefire

Wagon

ASF

How Apache Works

Foundation

Data Privacy

Sponsoring Apache

Thanks

Welcome to Apache Maven

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model

(POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

If you think that Maven could help your project, you can find out more information in the "About Maven"

section of the navigation. This includes an in-depth description of what Maven is and

a list of some of its main features.

This site is separated into the following sections, depending on how you'd like to use Maven:

Use

Download, Install, Configure, Run Maven

Maven Plugins and Maven Extensions

Information for those needing to build a project that uses Maven

Lists of plugins and extensions to help with your builds.

Extend

Write Maven Plugins

Improve the Maven Central Repository

Information for developers writing Maven plugins.

Information for those who may or may not use Maven, but are interested in getting project metadata into the

central repository.

Contribute

Help Maven

Develop Maven

Information if you'd like to get involved. Maven is an open source community and welcomes contributions.

Information for those who are currently Maven developers, or who are interested

in contributing to the Maven project itself.

Each guide is divided into a number of trails to get you started on a particular topic, and includes a

reference area and a "cookbook" of common examples.

You can access the guides at any time from the left navigation.

If you are looking for a quick reference, you can use the documentation index.

How to Get Support

Support for Maven is available in a variety of different forms.

To get started, search the documentation,

issue management system, the wiki

or the mailing list archives to

see if the problem has been solved or reported before.

If the problem has not been reported before, the recommended way to get help is to

subscribe to the Maven Users Mailing list. Many other users and Maven developers

will answer your questions there, and the answer will be archived for others in the future.

You can also reach the Maven developers on Slack.

Apache Software Foundation

Maven is a part of the Apache Software Foundation. We'd like to thank

the sponsors that provide financial assistance to the foundation. For more information on how you can support the

foundation, see the sponsorship page.

You can also attend Apache Events. Don't hesitate to ask on the Maven User mailing list

if Maven team members will be there. It can be a great opportunity to meet them.

© 2002–2024

The Apache Software Foundation

Maven – Download Apache Maven

Maven – Download Apache Maven

Apache/

Maven/

Download Apache Maven

| Last Published: 2024-03-12

|

Get Sources

Download

Welcome

License

About Maven

What is Maven?

Features

Download

Use

Release Notes

Documentation

Maven Plugins

Maven Extensions

Index (category)

User Centre

Plugin Developer Centre

Maven Repository Centre

Maven Developer Centre

Books and Resources

Security

Community

Community Overview

Project Roles

How to Contribute

Getting Help

Issue Management

Getting Maven Source

The Maven Team

Project Documentation

Project Information

Maven Projects

Maven

Archetypes

Extensions

Parent POMs

Plugins

Skins

Archetype

Artifact Resolver

Doxia

Indexer

JXR

Plugin Testing

Plugin Tools

Resource Bundles

SCM

Shared Components

Surefire

Wagon

ASF

How Apache Works

Foundation

Data Privacy

Sponsoring Apache

Thanks

Downloading Apache Maven 3.9.6

Apache Maven 3.9.6 is the latest release: it is the recommended version for all users.

System Requirements

Java Development Kit (JDK)

Maven 3.9+ requires JDK 8 or above to execute. It still allows you to build against 1.3 and other JDK versions

by using toolchains.

Memory

No minimum requirement

Disk

Approximately 10MB is required for the Maven installation itself. In addition to that, disk space will

be used for your local Maven repository. The size of your local repository will vary depending on usage but expect at

least 500MB.

Operating System

No minimum requirement. Start up scripts are included as shell scripts (tested on many Unix flavors) and Windows batch files.

Files

Maven is distributed in several formats for your convenience. Simply pick a

ready-made binary distribution archive and follow the

installation instructions.

Use a source archive if you intend to build Maven yourself.

In order to guard against corrupted downloads/installations, it is highly recommended to

verify the signature

of the release bundles against the public KEYS used by the Apache Maven

developers.

Link

Checksums

Signature

Binary tar.gz archive

apache-maven-3.9.6-bin.tar.gz

apache-maven-3.9.6-bin.tar.gz.sha512

apache-maven-3.9.6-bin.tar.gz.asc

Binary zip archive

apache-maven-3.9.6-bin.zip

apache-maven-3.9.6-bin.zip.sha512

apache-maven-3.9.6-bin.zip.asc

Source tar.gz archive

apache-maven-3.9.6-src.tar.gz

apache-maven-3.9.6-src.tar.gz.sha512

apache-maven-3.9.6-src.tar.gz.asc

Source zip archive

apache-maven-3.9.6-src.zip

apache-maven-3.9.6-src.zip.sha512

apache-maven-3.9.6-src.zip.asc

3.9.6 Release Notes and

Release Reference Documentation

latest source code from source repository

Distributed under the Apache License, version 2.0

other:

Apache Maven Website As Documentation Archive

All current release sources (plugins, shared libraries,...) available at https://downloads.apache.org/maven/

Other Releases

It is strongly recommended to use the latest release version of Apache Maven to take advantage of newest features and bug fixes.

If you still want to use an old version, you can find more information in the

Maven Releases History and can download files from

the Maven 3 archives for versions 3.0.4+

and legacy archives for earlier releases.

Previous Stable 3.8.x Release

Apache Maven 3.8.8 is the previous stable minor release for all users.

Java Development Kit (JDK)

Maven 3.8+ requires JDK 1.7 or above to execute. It still allows you to build against 1.3 and other JDK versions

by using toolchains.

Maven is distributed in several formats for your convenience. Simply pick a

ready-made binary distribution archive and follow the

installation instructions.

Use a source archive if you intend to build Maven yourself.

In order to guard against corrupted downloads/installations, it is highly recommended to

verify the signature

of the release bundles against the public KEYS used by the Apache Maven

developers.

Format

Binary (Checksum, Signature)

Source (Checksum, Signature)

tar.gz archives

Binary apache-maven-3.8.8-bin.tar.gz

(sha512,

asc)

Source apache-maven-3.8.8-src.tar.gz

(sha512,

asc)

zip archives

Binary apache-maven-3.8.8-bin.zip

(sha512,

asc)

Source apache-maven-3.8.8-src.zip

(sha512,

asc)

3.8.8 Release Notes and

Release Reference Documentation

Distributed under the Apache License, version 2.0

Alpha 4.x Release

Maven 4.x is currently under development, so while we are encouraging users to try it and report any issue, it is NOT safe for production use.

Java Development Kit (JDK)

Maven 4.0+ requires JDK 1.8 or above to execute. It still allows you to build against 1.3 and other JDK versions

by using toolchains.

Maven is distributed in several formats for your convenience. Simply pick a

ready-made binary distribution archive and follow the

installation instructions.

Use a source archive if you intend to build Maven yourself.

In order to guard against corrupted downloads/installations, it is highly recommended to

verify the signature

of the release bundles against the public KEYS used by the Apache Maven

developers.

Format

Binary (Checksum, Signature)

Source (Checksum, Signature)

tar.gz archives

Binary apache-maven-4.0.0-alpha-13-bin.tar.gz

(sha512,

asc)

Source apache-maven-4.0.0-alpha-13-src.tar.gz

(sha512,

asc)

zip archives

Binary apache-maven-4.0.0-alpha-13-bin.zip

(sha512,

asc)

Source apache-maven-4.0.0-alpha-13-src.zip

(sha512,

asc)

4.0.0-alpha-13 Release Notes and

Release Reference Documentation

Distributed under the Apache License, version 2.0

Maven 4 archives for older 4.x releases.

© 2002–2024

The Apache Software Foundation

Just a moment...

a moment...Enable JavaScript and cookies to continue

Maven 中文网

Maven 中文网

apache/

maven/

欢迎使用 Apache Maven

| 最后发表: 2022-03-19

|

获取资源

下载

欢迎

执照

关于 Maven

什么是maven?

特征

下载

采用

发行说明

文档

Maven 插件

Maven 扩展

索引(类别)

用户中心

插件开发者中心

Maven 中央存储库

Maven 开发者中心

书籍和资源

安全

社区

社区概览

项目角色

如何贡献

获得帮助

问题管理

获取 Maven 源

专家团队

项目文档

项目信息

Maven 项目

原型

神器解析器

多霞

扩展

JXR

maven

父 POM

插件

插件测试

插件工具

资源包

单片机

共享组件

皮肤

万无一失

车皮

ASF

apache的工作原理

基础

赞助apache

谢谢

关注 ASFMavenProject

欢迎使用 Apache Maven

Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。

如果您认为 Maven 可以帮助您的项目,您可以在导航的“关于 Maven”部分中找到更多信息。这包括对什么是 Maven的深入描述以及它的一些主要特性的列表。

该站点分为以下几个部分,具体取决于您希望如何使用 Maven:

采用

下载、安装、配置、运行Maven

Maven 插件和Maven 扩展

需要构建使用 Maven 的项目的信息

帮助您构建的插件和扩展列表。

延长

编写 Maven 插件

改进 Maven 中央存储库

为编写 Maven 插件的开发人员提供的信息。

为可能使用或不使用 Maven,但对将项目元数据导入

中央存储库感兴趣的人提供的信息。

贡献

帮助 Maven

开发 Maven

如果您想参与,请提供信息。Maven 是一个开源社区,欢迎贡献。

当前是 Maven 开发人员或有兴趣为 Maven 项目本身做出贡献的人的信息。

每个指南都分为多个路径,以帮助您开始了解特定主题,并包括参考区域和常见示例的“食谱”。

您可以随时从左侧导航访问指南。如果您正在寻找快速参考,您可以使用文档索引。

如何获得支持

对 Maven 的支持有多种不同的形式。

要开始,请搜索文档、

问题管理系统、wiki

或邮件列表档案,看看问题是否已经解决或报告过。

如果问题之前没有报告过,获得帮助的推荐方式是订阅Maven 用户邮件列表。许多其他用户和 Maven 开发人员将在那里回答您的问题,并且将来会为其他人存档答案。

您还可以在Slack上联系 Maven 开发人员。

apache软件基金会

Maven 是 Apache 软件基金会的一部分。我们要感谢为基金会提供财政援助的赞助商。有关如何支持基金会的更多信息,请参阅赞助页面。

您还可以参加Apache 活动。不要犹豫,在Maven 用户邮件列表上

询问 Maven 团队成员是否会在那里。这可能是与他们见面的好机会。

© 2002–2022

Apache 软件基金会

Maven – 下载 Apache Maven

Maven – 下载 Apache Maven

apache/

maven/

下载 Apache Maven

| 最后发表: 2022-03-19

|

获取资源

下载

欢迎

执照

关于 Maven

什么是maven?

特征

下载

采用

发行说明

文档

Maven 插件

Maven 扩展

索引(类别)

用户中心

插件开发者中心

Maven 中央存储库

Maven 开发者中心

书籍和资源

安全

社区

社区概览

项目角色

如何贡献

获得帮助

问题管理

获取 Maven 源

专家团队

项目文档

项目信息

Maven 项目

原型

神器解析器

多霞

扩展

JXR

maven

父 POM

插件

插件测试

插件工具

资源包

单片机

共享组件

皮肤

万无一失

车皮

ASF

apache的工作原理

基础

赞助apache

谢谢

关注 ASFMavenProject

下载 Apache Maven 3.8.5

Apache Maven 3.8.5 是所有用户的最新版本和推荐版本。

当前选择的下载镜像是

https://dlcdn.apache.org/。如果您在使用此镜像时遇到问题,请选择另一个镜像。如果所有镜像都失败,则

应该有可用的备份镜像(位于镜像列表的末尾)。您也可以查阅

完整的镜像列表。

其他镜子:

https://dlcdn.apache.org/

https://downloads.apache.org/(备份)

系统要求

Java 开发工具包 (JDK)

Maven 3.3+ 需要 JDK 1.7 或更高版本才能执行 - 它们仍然允许您使用工具链针对 1.3 和其他 JDK 版本进行构建

记忆

无最低要求

磁盘

Maven 安装本身需要大约 10MB。除此之外,额外的磁盘空间将用于您的本地 Maven 存储库。您的本地存储库的大小将根据使用情况而有所不同,但预计至少为 500MB。

操作系统

没有最低要求。启动脚本包含在 shell 脚本和 Windows 批处理文件中。

文件

为方便起见,Maven 以多种格式分发。只需选择一个现成的二进制分发存档并按照

安装说明进行操作。

如果您打算自己构建 Maven,请使用源存档。

为了防止损坏的下载/安装,强烈建议

根据 Apache Maven 开发人员使用

的公共KEYS验证发布包的签名。

关联

校验和

签名

二进制 tar.gz 存档

apache-maven-3.8.5-bin.tar.gz

apache-maven-3.8.5-bin.tar.gz.sha512

apache-maven-3.8.5-bin.tar.gz.asc

二进制压缩包

apache-maven-3.8.5-bin.zip

apache-maven-3.8.5-bin.zip.sha512

apache-maven-3.8.5-bin.zip.asc

源 tar.gz 存档

apache-maven-3.8.5-src.tar.gz

apache-maven-3.8.5-src.tar.gz.sha512

apache-maven-3.8.5-src.tar.gz.asc

源 zip 存档

apache-maven-3.8.5-src.zip

apache-maven-3.8.5-src.zip.sha512

apache-maven-3.8.5-src.zip.asc

发行说明

参考文档

Apache Maven 网站作为文档存档

在 https://downloads.apache.org/maven/ 上提供所有当前发布源(插件、共享库...)

来自源存储库的最新源代码

根据Apache 许可证分发,版本 2.0

以前的版本

强烈建议使用最新版本的 Apache Maven 以利用最新功能和错误修复。

如果您仍想使用旧版本,您可以在

Maven 发布历史中找到更多信息,并且可以从3.0.4+ 版本的存档和早期版本的旧存档下载文件 。

© 2002–2022

Apache 软件基金会

Maven – Maven Documentation

Maven – Maven Documentation

Apache/

Maven/

Maven Documentation

| Last Published: 2024-03-12

|

Get Sources

Download

Welcome

License

About Maven

What is Maven?

Features

Download

Use

Release Notes

Documentation

Maven Plugins

Maven Extensions

Index (category)

User Centre

Plugin Developer Centre

Maven Repository Centre

Maven Developer Centre

Books and Resources

Security

Community

Community Overview

Project Roles

How to Contribute

Getting Help

Issue Management

Getting Maven Source

The Maven Team

Project Documentation

Project Information

Maven Projects

Maven

Archetypes

Extensions

Parent POMs

Plugins

Skins

Archetype

Artifact Resolver

Doxia

Indexer

JXR

Plugin Testing

Plugin Tools

Resource Bundles

SCM

Shared Components

Surefire

Wagon

ASF

How Apache Works

Foundation

Data Privacy

Sponsoring Apache

Thanks

Documentation

Getting Started with Maven

Getting Started in 5 Minutes

Getting Started in 30 Minutes

Introductions

The Build Lifecycle

The POM

Profiles

Repositories

Standard Directory Layout

The Dependency Mechanism

Optional Dependencies and Dependency Exclusions

Plugins

Plugin Development

Configuring Plug-ins

Plugin Prefix Resolution

Developing Java Plugins

Site

Creating a Site

The APT Format

Snippet Macro

Archetypes

What is an Archetype

Creating Archetypes

Upgrading

Relocation of Artifacts

Repositories

Installing 3rd party JARs to Local Repository

Deploying 3rd party JARs to Remote Repository

Repository Management

Using Multiple Repositories

Large Scale Centralized Deployments

Mirror Settings

Deployment and Security Settings

Using Proxies

Authenticated HTTPS

Remote repository access through authenticated HTTPS

Relocation

Guides

Configuring for Reproducible Builds

Creating Assemblies

Configuring Archive Plugins

Configuring Maven

Generating Sources

Working with Manifests

Maven Classloading

Using Multiple Modules in a Build

Using the Release Plugin

Using Ant with Maven

Using Modello

Using Extensions

Building For Different Environments with Maven 2

Using Toolchains

Injecting POM Properties via settings.xml

Maven Tools and IDE Integration

Maven Auto-Completion Using BASH

Development Guides

Building Maven from Scratch

Developing Maven

The Plugin Documentation Standard

Maven Documentation Style

The Maven Community

The Maven Community

Helping with Maven

Guide for New Committers

Testing Development Versions of Plugins

3rd Party Resources

Conventions

Maven Conventions

Naming Conventions

When You Can't Use the Conventions

The Central Repository

Introduction to the Central Repository

Uploading Artifacts to the Central Repository

Improving the Repository

References

POM Overview (Technical Project Descriptor)

Settings Overview (Technical Settings Descriptor)

Core Plug-ins List

Mojo API

Glossary

Javadoc API

Here is some useful Javadoc API links to the current version of Maven:

Maven Artifact

Maven Reporting

Maven Plugin API

Maven Model

Maven Core

Maven Settings

You can also browse the full technical documentation references of the current version of Maven.

© 2002–2024

The Apache Software Foundation

Maven Central Repository Search

Maven Central Repository Search

Sorry, your browser does not support JavaScript!

Maven – Maven 入门指南

Maven – Maven 入门指南

apache/

maven/

Maven 入门指南

| 最后发表: 2022-03-19

|

获取资源

下载

欢迎

执照

关于 Maven

什么是maven?

特征

下载

采用

发行说明

文档

Maven 插件

Maven 扩展

索引(类别)

用户中心

5 分钟了解 Maven

入门指南

构建生命周期

聚甲醛

简介

标准目录布局

依赖机制

获得帮助

运行 Maven

配置插件

创建站点

原型

存储库

指南

设置参考

POM 参考

常问问题

插件开发者中心

Maven 中央存储库

Maven 开发者中心

书籍和资源

安全

社区

社区概览

项目角色

如何贡献

获得帮助

问题管理

获取 Maven 源

专家团队

项目文档

项目信息

Maven 项目

原型

神器解析器

多霞

扩展

JXR

maven

父 POM

插件

插件测试

插件工具

资源包

单片机

共享组件

皮肤

万无一失

车皮

ASF

apache的工作原理

基础

赞助apache

谢谢

关注 ASFMavenProject

Maven 入门指南

本指南旨在作为第一次使用 Maven 的人的参考,但也旨在作为一本包含自包含参考资料和常见用例解决方案的食谱。对于初次使用的用户,建议您按顺序逐步浏览材料。对于更熟悉 Maven 的用户,本指南致力于为手头的需求提供快速解决方案。此时假设您已经下载了 Maven 并在本地计算机上安装了 Maven。如果您还没有这样做,请参阅下载和安装说明。

好的,所以你现在已经安装了 Maven,我们准备好了。在开始我们的示例之前,我们将简要介绍一下 Maven 是什么以及它如何帮助您完成日常工作以及与团队成员的协作。当然,Maven 将适用于小型项目,但 Maven 通过允许团队成员专注于项目的利益相关者的需求来帮助团队更有效地运作。您可以将构建基础架构留给 Maven!

部分

什么是maven?

Maven 如何使我的开发过程受益?

如何设置 Maven?

如何制作我的第一个 Maven 项目?

如何编译我的应用程序源?

如何编译我的测试源并运行我的单元测试?

如何创建 JAR 并将其安装在本地存储库中?

什么是 SNAPSHOT 版本?

如何使用插件?

如何将资源添加到我的 JAR?

如何过滤资源文件?

如何使用外部依赖项?

如何在远程存储库中部署我的 jar?

如何创建文档?

如何构建其他类型的项目?

如何一次构建多个项目?

什么是maven?

乍一看,Maven 可能看起来有很多东西,但简而言之,Maven 试图将模式应用于项目的构建基础架构,以便通过提供使用最佳实践的清晰路径来提高理解力和生产力。Maven 本质上是一个项目管理和理解工具,因此提供了一种帮助管理的方法:

构建

文档

报告

依赖项

单片机

发布

分配

如果您想了解更多关于 Maven 的背景信息,您可以查看The Philosophy of Maven和The History of Maven。现在让我们继续讨论您(用户)如何从使用 Maven 中受益。

Maven 如何使我的开发过程受益?

Maven 可以通过采用标准约定和实践来加快您的开发周期,同时帮助您获得更高的成功率,从而为您的构建过程带来好处。

现在我们已经介绍了一些 Maven 的历史和目的,让我们进入一些真实的例子来帮助您开始使用 Maven!

如何设置 Maven?

Maven 的默认值通常就足够了,但如果您需要更改缓存位置或位于 HTTP 代理后面,则需要创建配置。有关更多信息,请参阅配置 Maven 指南。

如何制作我的第一个 Maven 项目?

我们将一头扎进创建您的第一个 Maven 项目!为了创建我们的第一个 Maven 项目,我们将使用 Maven 的原型机制。原型被定义为原始模式或模型,所有其他同类事物都由该模型或模型制成。在 Maven 中,原型是项目的模板,它与一些用户输入相结合,以生成根据用户要求定制的工作 Maven 项目。我们现在将向您展示原型机制是如何工作的,但如果您想了解更多关于原型的信息,请参阅我们的原型介绍。

开始创建您的第一个项目!为了创建最简单的 Maven 项目,请从命令行执行以下命令:

mvn -B archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4

执行此命令后,您会注意到发生了一些事情。首先,您会注意到my-app已为新项目创建了一个名为的目录,该目录包含一个名为的文件,该文件pom.xml应如下所示:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

my-app

http://www.example.com

UTF-8

1.7

1.7

junit

junit

4.11

test

... lots of helpful plugins

pom.xml包含此项目的项目对象模型 (POM)。POM 是 Maven 中的基本工作单元。记住这一点很重要,因为 Maven 本质上是以项目为中心的,因为一切都围绕着项目的概念。简而言之,POM 包含有关您的项目的所有重要信息,并且本质上是一站式购物,可以找到与您的项目相关的任何信息。了解 POM 很重要,鼓励新用户参考POM 简介。

这是一个非常简单的 POM,但仍然显示了每个 POM 包含的关键元素,因此让我们逐一介绍它们以熟悉 POM 的基本要素:

project这是所有 Maven pom.xml 文件中的顶级元素。

modelVersion此元素指示此 POM 使用的对象模型的版本。模型本身的版本很少更改,但是当 Maven 开发人员认为有必要更改模型时,它是强制性的,以确保使用的稳定性。

groupId此元素指示创建项目的组织或组的唯一标识符。groupId 是项目的关键标识符之一,通常基于组织的完全限定域名。例如org.apache.maven.plugins是为所有 Maven 插件指定的 groupId。

artifactId此元素指示此项目正在生成的主要工件的唯一基本名称。项目的主要工件通常是 JAR 文件。像源包这样的次要工件也使用 artifactId 作为其最终名称的一部分。由 Maven 生成的典型工件的格式为 -.(例如myapp-1.0.jar)。

version此元素指示项目生成的工件的版本。Maven 在帮助您进行版本管理方面有很大帮助,您经常会SNAPSHOT在版本中看到指示符,这表明项目处于开发状态。我们将在本指南中讨论快照的使用以及它们如何进一步工作。

name此元素指示用于项目的显示名称。这经常在 Maven 生成的文档中使用。

url此元素指示可以找到项目站点的位置。这经常在 Maven 生成的文档中使用。

属性此元素包含可在 POM 中的任何位置访问的值占位符。

dependencies此元素的子项列出依赖项。POM 的基石。

build这个元素处理诸如声明项目的目录结构和管理插件之类的事情。

有关可在 POM 中使用的元素的完整参考,请参阅我们的POM 参考。现在让我们回到手头的项目。

在您的第一个项目的原型生成之后,您还会注意到已创建以下目录结构:

my-app

|-- pom.xml

`-- src

|-- main

| `-- java

| `-- com

| `-- mycompany

| `-- app

| `-- App.java

`-- test

`-- java

`-- com

`-- mycompany

`-- app

`-- AppTest.java

如您所见,从原型创建的项目有一个 POM、一个用于应用程序源代码的源代码树和一个用于测试源代码的源代码树。这是 Maven 项目的标准布局(应用程序源位于${basedir}/src/main/java,测试源位于${basedir}/src/test/java,其中 ${basedir} 表示包含 的目录pom.xml)。

如果您要手动创建一个 Maven 项目,这是我们推荐使用的目录结构。这是一个 Maven 约定,要了解更多信息,您可以阅读我们的标准目录布局简介。

现在我们有了 POM、一些应用程序源和一些测试源,您可能会问...

如何编译我的应用程序源?

切换到由 archetype:generate 创建 pom.xml 的目录并执行以下命令来编译您的应用程序源:

mvn compile

执行此命令后,您应该会看到如下输出:

[INFO] Scanning for projects...

[INFO]

[INFO] ----------------------< com.mycompany.app:my-app >----------------------

[INFO] Building my-app 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ my-app ---

[INFO] Using 'UTF-8' encoding to copy filtered resources.

[INFO] skip non existing resourceDirectory

/my-app/src/main/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ my-app ---

[INFO] Changes detected - recompiling the module!

[INFO] Compiling 1 source file to

/my-app/target/classes

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 0.899 s

[INFO] Finished at: 2020-07-12T11:31:54+01:00

[INFO] ------------------------------------------------------------------------

第一次执行此(或任何其他)命令时,Maven 将需要下载执行该命令所需的所有插件和相关依赖项。从全新安装的 Maven 开始,这可能需要相当长的时间(在上面的输出中,大约需要 4 分钟)。如果您再次执行该命令,Maven 现在将拥有它需要的东西,因此它不需要下载任何新内容,并且能够更快地执行该命令。

从输出中可以看出,编译后的类被放置在${basedir}/target/classesMaven 中,这是另一个标准约定。所以,如果你是一个敏锐的观察者,你会注意到通过使用标准约定,上面的 POM 非常小,你不必明确告诉 Maven 你的任何源在哪里或输出应该去哪里。通过遵循标准的 Maven 约定,您可以轻松完成很多工作!只是作为一个随意的比较,让我们看看您在Ant中可能必须做些什么来完成同样的事情。

现在,这只是为了编译单个应用程序源树,并且显示的 Ant 脚本与上面显示的 POM 的大小几乎相同。但是我们会看到我们可以用这个简单的 POM 做更多的事情!

如何编译我的测试源并运行我的单元测试?

现在您已经成功编译了应用程序的源代码,并且现在您已经有了一些要编译和执行的单元测试(因为每个程序员总是编写和执行他们的单元测试 *nudge nudge wink wink*)。

执行以下命令:

mvn test

执行此命令后,您应该会看到如下输出:

[INFO] Scanning for projects...

[INFO]

[INFO] ----------------------< com.mycompany.app:my-app >----------------------

[INFO] Building my-app 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ my-app ---

[INFO] Using 'UTF-8' encoding to copy filtered resources.

[INFO] skip non existing resourceDirectory

/my-app/src/main/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ my-app ---

[INFO] Using 'UTF-8' encoding to copy filtered resources.

[INFO] skip non existing resourceDirectory

/my-app/src/test/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ my-app ---

[INFO] Changes detected - recompiling the module!

[INFO] Compiling 1 source file to

/my-app/target/test-classes

[INFO]

[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ my-app ---

[INFO]

[INFO] -------------------------------------------------------

[INFO] T E S T S

[INFO] -------------------------------------------------------

[INFO] Running com.mycompany.app.AppTest

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.025 s - in com.mycompany.app.AppTest

[INFO]

[INFO] Results:

[INFO]

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1.881 s

[INFO] Finished at: 2020-07-12T12:00:33+01:00

[INFO] ------------------------------------------------------------------------

关于输出的一些注意事项:

这次 Maven 下载了更多的依赖项。这些是执行测试所需的依赖项和插件(它已经具有编译所需的依赖项,不会再次下载它们)。

在编译和执行测试之前,Maven 编译主要代码(所有这些类都是最新的,因为自上次编译以来我们没有更改任何内容)。

如果您只是想编译您的测试源(但不执行测试),您可以执行以下操作:

mvn test编译

现在您可以编译您的应用程序源代码、编译您的测试并执行测试,您需要继续进行下一个合乎逻辑的步骤,所以您会问...

如何创建 JAR 并将其安装在本地存储库中?

制作 JAR 文件非常简单,可以通过执行以下命令来完成:

mvn package

您现在可以查看${basedir}/target目录,您将看到生成的 JAR 文件。

现在您需要在本地存储库中安装您生成的工件(JAR 文件)(${user.home}/.m2/repository默认位置)。有关存储库的更多信息,您可以参考我们的存储库简介,但让我们继续安装我们的工件!为此,请执行以下命令:

mvn install

执行此命令后,您应该看到以下输出:

[INFO] Scanning for projects...

[INFO]

[INFO] ----------------------< com.mycompany.app:my-app >----------------------

[INFO] Building my-app 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ my-app ---

...

[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ my-app ---

...

[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ my-app ---

[INFO]

[INFO] -------------------------------------------------------

[INFO] T E S T S

[INFO] -------------------------------------------------------

[INFO] Running com.mycompany.app.AppTest

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.025 s - in com.mycompany.app.AppTest

[INFO]

[INFO] Results:

[INFO]

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]

[INFO]

[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ my-app ---

[INFO] Building jar:

/my-app/target/my-app-1.0-SNAPSHOT.jar

[INFO]

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ my-app ---

[INFO] Installing

/my-app/target/my-app-1.0-SNAPSHOT.jar to /com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar

[INFO] Installing

/my-app/pom.xml to /com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.pom

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1.678 s

[INFO] Finished at: 2020-07-12T12:04:45+01:00

[INFO] ------------------------------------------------------------------------

请注意,surefire 插件(执行测试)会查找包含在具有特定命名约定的文件中的测试。默认情况下,包含的测试是:

**/*Test.java

**/Test*.java

**/*TestCase.java

默认排除是:

**/Abstract*Test.java

**/Abstract*TestCase.java

您已经完成了设置、构建、测试、打包和安装典型 Maven 项目的过程。这可能是绝大多数项目将使用 Maven 进行的操作,如果您已经注意到,到目前为止您所做的一切都是由一个 18 行文件驱动的,即项目的模型或 POM。如果您查看一个典型的 Ant构建文件,它提供了与我们迄今为止实现的功能相同的功能,您会注意到它已经是 POM 大小的两倍,而我们才刚刚开始!Maven 可以为您提供更多功能,而无需像当前那样对我们的 POM 进行任何添加。要从我们的示例 Ant 构建文件中获得更多功能,您必须不断进行容易出错的添加。

那么你还能免费获得什么?有很多 Maven 插件可以开箱即用,即使是像我们上面那样的简单 POM。我们将在这里特别提到一个,因为它是 Maven 最受重视的特性之一:无需您做任何工作,这个 POM 就有足够的信息来为您的项目生成一个网站!您很可能想要自定义您的 Maven 站点,但如果您时间紧迫,您只需执行以下命令即可提供有关项目的基本信息:

mvn site

还有许多其他独立的目标也可以执行,例如:

mvn clean

这将target在开始之前删除包含所有构建数据的目录,使其保持新鲜。

什么是 SNAPSHOT 版本?

请注意,下面显示的文件中版本标记的值pom.xml具有后缀:-SNAPSHOT.

...

...

my-app

...

1.0-SNAPSHOT

Maven Quick Start Archetype

...

该SNAPSHOT值是指开发分支中的“最新”代码,不保证代码是稳定的或不变的。相反,“发布”版本(任何不带后缀的版本值SNAPSHOT)中的代码是不变的。

换句话说,SNAPSHOT 版本是最终“发布”版本之前的“开发”版本。SNAPSHOT 比它的版本“旧”。

在发布过程中, xy-SNAPSHOT的一个版本更改为xy。发布过程还将开发版本增加到x.(y+1)-SNAPSHOT。例如,版本1.0-SNAPSHOT发布为1.0版本,新的开发版本为1.1-SNAPSHOT版本。

如何使用插件?

每当您想为 Maven 项目自定义构建时,都可以通过添加或重新配置插件来完成。

对于此示例,我们将配置 Java 编译器以允许 JDK 5.0 源。这就像将其添加到您的 POM 一样简单:

...

org.apache.maven.plugins

maven-compiler-plugin

3.3

1.5

1.5

...

您会注意到 Maven 中的所有插件看起来都非常像依赖项——在某些方面它们确实如此。这个插件将被自动下载和使用——如果你要求它包括一个特定的版本(默认是使用最新的可用版本)。

该configuration元素将给定的参数应用于编译器插件的每个目标。在上述情况下,编译器插件已被用作构建过程的一部分,这只是更改了配置。还可以向流程添加新目标,并配置特定目标。有关这方面的信息,请参阅构建生命周期简介。

要了解插件可用的配置,您可以查看插件列表并导航到您正在使用的插件和目标。有关如何配置插件可用参数的一般信息,请查看配置插件指南。

如何将资源添加到我的 JAR?

另一个不需要更改我们上面的 POM 的常见用例是在 JAR 文件中打包资源。对于这个常见的任务,Maven 再次依赖于标准目录布局,这意味着通过使用标准的 Maven 约定,您可以将资源打包到 JAR 中,只需将这些资源放在标准目录结构中即可。

您可以在下面的示例中看到,我们添加了目录${basedir}/src/main/resources,我们将希望打包到 JAR 中的任何资源放置到该目录中。Maven 采用的简单规则是:任何目录或放置在该${basedir}/src/main/resources目录中的文件都打包在您的 JAR 中,并且从 JAR 的基础开始具有完全相同的结构。

my-app

|-- pom.xml

`-- src

|-- main

| |-- java

| | `-- com

| | `-- mycompany

| | `-- app

| | `-- App.java

| `-- resources

| `-- META-INF

| `-- application.properties

`-- test

`-- java

`-- com

`-- mycompany

`-- app

`-- AppTest.java

因此,您可以在我们的示例中看到我们有一个META-INF目录,该目录中有一个application.properties文件。如果您解压 Maven 为您创建的 JAR 并查看它,您会看到以下内容:

|-- META-INF

| |-- MANIFEST.MF

| |-- application.properties

| `-- maven

| `-- com.mycompany.app

| `-- my-app

| |-- pom.properties

| `-- pom.xml

`-- com

`-- mycompany

`-- app

`-- App.class

如您所见,${basedir}/src/main/resources可以从 JAR 的基础开始找到 的内容,并且我们的application.properties文件在META-INF目录中。您还会注意到那里的一些其他文件,例如META-INF/MANIFEST.MFapom.xml和pom.properties文件。这些是在 Maven 中生成 JAR 的标准。如果您愿意,您可以创建自己的清单,但如果您不这样做,Maven 会默认生成一个。(您也可以修改默认清单中的条目。我们稍后会谈到这一点。pom.xml)pom.properties文件打包在 JAR 中,因此 Maven 生成的每个工件都是自描述的,如果需要,还允许您在自己的应用程序中使用元数据。一种简单的用途可能是检索应用程序的版本。对 POM 文件进行操作需要使用一些 Maven 实用程序,但可以使用标准 Java API 使用这些属性,如下所示:

#Generated by Maven

#Tue Oct 04 15:43:21 GMT-05:00 2005

version=1.0-SNAPSHOT

groupId=com.mycompany.app

artifactId=my-app

要将资源添加到单元测试的类路径中,请遵循与将资源添加到 JAR 中相同的模式,但您放置资源的目录是 ${basedir}/src/test/resources。此时,您将拥有如下所示的项目目录结构:

my-app

|-- pom.xml

`-- src

|-- main

| |-- java

| | `-- com

| | `-- mycompany

| | `-- app

| | `-- App.java

| `-- resources

| `-- META-INF

| |-- application.properties

`-- test

|-- java

| `-- com

| `-- mycompany

| `-- app

| `-- AppTest.java

`-- resources

`-- test.properties

在单元测试中,您可以使用如下所示的简单代码片段来访问测试所需的资源:

...

// Retrieve resource

InputStream is = getClass().getResourceAsStream( "/test.properties" );

// Do something with the resource

...

如何过滤资源文件?

有时资源文件需要包含一个只能在构建时提供的值。要在 Maven 中完成此操作,请使用语法将包含该值的属性的引用放入资源文件中${}。该属性可以是您的 pom.xml 中定义的值之一、用户的 settings.xml 中定义的值、外部属性文件中定义的属性或系统属性。

要在复制时让 Maven 过滤资源,只需将filtering您的资源目录设置为 true pom.xml:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

src/main/resources

true

您会注意到我们必须添加以前没有的build、resources和resource元素。此外,我们必须明确声明资源位于 src/main/resources 目录中。所有这些信息以前都是作为默认值提供的,但是因为默认值为filteringfalse,我们必须将其添加到 pom.xml 中以覆盖该默认值并设置filtering为 true。

要引用 pom.xml 中定义的属性,属性名称使用定义值的 XML 元素的名称,其中允许“pom”作为项目(根)元素的别名。so${project.name}指项目的名称,${project.version}指项目的版本,${project.build.finalName}指构建项目打包时创建的文件的最终名称等。注意POM的一些元素有默认值,所以不要需要在您pom.xml的文件中明确定义才能在此处使用这些值。类似地,settings.xml可以使用以“settings”开头的属性名称来引用用户中的值(例如,${settings.localRepository}引用用户本地存储库的路径)。

application.properties继续我们的示例,让我们向文件(我们放在目录中)添加几个属性,这些属性src/main/resources将在过滤资源时提供:

# application.properties

application.name=${project.name}

application.version=${project.version}

有了它,您可以执行以下命令(process-resources 是复制和过滤资源的构建生命周期阶段):

mvn process-resources

并且(最终将进入 jar)application.properties下的文件如下所示:target/classes

# application.properties

application.name=Maven Quick Start Archetype

application.version=1.0-SNAPSHOT

要引用外部文件中定义的属性,您需要做的就是在 pom.xml 中添加对该外部文件的引用。首先,让我们创建外部属性文件并调用它src/main/filters/filter.properties:

# filter.properties

my.filter.value=hello!

接下来,我们将在以下位置添加对这个新文件的引用pom.xml:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

src/main/filters/filter.properties

src/main/resources

true

然后,如果我们在文件中添加对该属性的引用application.properties:

# application.properties

application.name=${project.name}

application.version=${project.version}

message=${my.filter.value}

下一次执行该mvn process-resources命令会将我们的新属性值放入application.properties. 作为在外部文件中定义 my.filter.value 属性的替代方法,您也可以在您的properties部分中定义它,pom.xml并且您将获得相同的效果(注意我不需要对src/main/filters/filter.properties任何一个的引用):

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

src/main/resources

true

hello

过滤资源也可以从系统属性中获取值;Java 内置的系统属性(如java.version或user.home)或使用标准 Java -D 参数在命令行上定义的属性。为了继续这个示例,让我们将application.properties文件更改为如下所示:

# application.properties

java.version=${java.version}

command.line.prop=${command.line.prop}

现在,当您执行以下命令时(注意命令行上 command.line.prop 属性的定义),该application.properties文件将包含来自系统属性的值。

mvn process-resources "-Dcommand.line.prop=hello again"

如何使用外部依赖项?

您可能已经注意到dependencies我们作为示例使用的 POM 中的一个元素。事实上,你一直在使用外部依赖项,但在这里我们将更详细地讨论它是如何工作的。更详尽的介绍请参考我们的依赖机制介绍。

pom.xml 部分列出了我们的项目构建所需的dependencies所有外部依赖项(无论是在编译时、测试时、运行时还是其他任何时候都需要该依赖项)。现在,我们的项目仅依赖于 JUnit(为了清楚起见,我去掉了所有资源过滤的东西):

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

对于每个外部依赖项,您需要定义至少 4 项:groupId、artifactId、版本和范围。pom.xmlgroupId、artifactId 和 version 与构建该依赖项的项目中给出的相同。scope 元素指示您的项目如何使用该依赖项,并且可以是 、compile和test等值runtime。有关可以为依赖项指定的所有内容的更多信息,请参阅项目描述符参考。

有关整个依赖机制的更多信息,请参阅依赖机制简介。

有了有关依赖项的这些信息,Maven 将能够在构建项目时引用该依赖项。Maven 从哪里引用依赖项?Maven 在您的本地存储库(${user.home}/.m2/repository默认位置)中查找所有依赖项。在上一节中,我们将项目 (my-app-1.0-SNAPSHOT.jar) 中的工件安装到本地存储库中。一旦它安装在那里,另一个项目可以简单地通过将依赖信息添加到其 pom.xml 来将该 jar 作为依赖项引用:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

com.mycompany.app

my-other-app

...

...

com.mycompany.app

my-app

1.0-SNAPSHOT

compile

那么在其他地方构建的依赖项呢?他们如何进入我的本地存储库?每当项目引用本地存储库中不可用的依赖项时,Maven 会将依赖项从远程存储库下载到本地存储库。当您构建第一个项目时,您可能注意到 Maven 下载了很多东西(这些下载是用于构建项目的各种插件的依赖项)。默认情况下,可以在https://repo.maven.apache.org/maven2/找到(和浏览)Maven 使用的远程存储库。您还可以设置自己的远程存储库(可能是您公司的中央存储库)来代替默认远程存储库或作为默认远程存储库的补充。有关存储库的更多信息,您可以参考存储库简介.

让我们为我们的项目添加另一个依赖项。假设我们在代码中添加了一些日志记录,并且需要添加 log4j 作为依赖项。首先,我们需要知道 log4j 的 groupId、artifactId 和 version 是什么。Maven Central 上的相应目录称为/maven2/log4j/log4j。在该目录中有一个名为 maven-metadata.xml 的文件。下面是 log4j 的 maven-metadata.xml 的样子:

log4j

log4j

1.1.3

1.1.3

1.2.4

1.2.5

1.2.6

1.2.7

1.2.8

1.2.11

1.2.9

1.2.12

从这个文件中,我们可以看到我们想要的 groupId 是“log4j”,artifactId 是“log4j”。我们看到许多不同的版本值可供选择;现在,我们将只使用最新版本 1.2.12(一些 maven-metadata.xml 文件还可能指定哪个版本是当前发布版本:请参阅存储库元数据参考)。在 maven-metadata.xml 文件旁边,我们可以看到每个版本的 log4j 库对应的目录。在其中的每一个中,我们都会找到实际的 jar 文件(例如 log4j-1.2.12.jar)以及一个 pom 文件(这是依赖项的 pom.xml,指示它可能具有的任何进一步的依赖项和其他信息) 和另一个 maven-metadata.xml 文件。还有一个与这些文件相对应的 md5 文件,其中包含这些文件的 MD5 哈希值。您可以使用它来验证库或确定您可能已经在使用的特定库的版本。

现在我们知道了我们需要的信息,我们可以将依赖添加到我们的 pom.xml 中:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

log4j

log4j

1.2.12

compile

现在,当我们编译项目 ( mvn compile) 时,我们将看到 Maven 为我们下载 log4j 依赖项。

如何在远程存储库中部署我的 jar?

要将 jar 部署到外部存储库,您必须在 pom.xml 中配置存储库 url,并在 settings.xml 中配置连接到存储库的身份验证信息。

下面是一个使用 scp 和用户名/密码认证的例子:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-app

1.0-SNAPSHOT

jar

Maven Quick Start Archetype

http://maven.apache.org

junit

junit

4.11

test

org.apache.codehaus.plexus

plexus-utils

1.0.4

src/main/filters/filters.properties

src/main/resources

true

mycompany-repository

MyCompany Repository

scp://repository.mycompany.com/repository/maven2

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">

...

mycompany-repository

jvanzyl

/path/to/identity (default is ~/.ssh/id_dsa)

my_key_passphrase

...

请注意,如果您要连接到在 sshd_confing 中将参数“PasswordAuthentication”设置为“no”的 openssh ssh 服务器,则每次都必须输入密码以进行用户名/密码验证(尽管您可以使用另一个 ssh 登录客户端通过输入用户名和密码)。在这种情况下,您可能希望切换到公钥身份验证。

如果在settings.xml. 有关详细信息,请参阅密码加密。

如何创建文档?

为了让您开始使用 Maven 的文档系统,您可以使用原型机制使用以下命令为现有项目生成站点:

mvn archetype:generate \

-DarchetypeGroupId=org.apache.maven.archetypes \

-DarchetypeArtifactId=maven-archetype-site \

-DgroupId=com.mycompany.app \

-DartifactId=my-app-site

现在转到创建站点指南,了解如何为您的项目创建文档。

如何构建其他类型的项目?

请注意,生命周期适用于任何项目类型。例如,回到基本目录,我们可以创建一个简单的 Web 应用程序:

mvn archetype:generate \

-DarchetypeGroupId=org.apache.maven.archetypes \

-DarchetypeArtifactId=maven-archetype-webapp \

-DgroupId=com.mycompany.app \

-DartifactId=my-webapp

请注意,这些都必须在一行上。这将创建一个名为的目录,my-webapp其中包含以下项目描述符:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

my-webapp

1.0-SNAPSHOT

war

junit

junit

4.11

test

my-webapp

注意元素 - 这告诉 Maven 构建为 WAR。切换到 webapp 项目的目录并尝试:

mvn package

您会看到target/my-webapp.war构建完成,并且所有正常步骤都已执行。

如何一次构建多个项目?

处理多个模块的概念内置在 Maven 中。在本节中,我们将展示如何构建上面的 WAR,并在一个步骤中包含之前的 JAR。

首先,我们需要pom.xml在另外两个上面的目录中添加一个父文件,所以它应该是这样的:

+- pom.xml

+- my-app

| +- pom.xml

| +- src

| +- main

| +- java

+- my-webapp

| +- pom.xml

| +- src

| +- main

| +- webapp

您将创建的 POM 文件应包含以下内容:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.mycompany.app

app

1.0-SNAPSHOT

pom

my-app

my-webapp

我们需要来自 webapp 的 JAR 依赖项,因此将其添加到my-webapp/pom.xml:

...

com.mycompany.app

my-app

1.0-SNAPSHOT

...

最后,将以下元素添加到pom.xml子目录中的其他两个文件中:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

com.mycompany.app

app

1.0-SNAPSHOT

...

现在,试一试......从顶级目录,运行:

mvn verify

现在已经在 中创建了 WAR my-webapp/target/my-webapp.war,并且包含了 JAR:

$ jar tvf my-webapp/target/my-webapp-1.0-SNAPSHOT.war

0 Fri Jun 24 10:59:56 EST 2005 META-INF/

222 Fri Jun 24 10:59:54 EST 2005 META-INF/MANIFEST.MF

0 Fri Jun 24 10:59:56 EST 2005 META-INF/maven/

0 Fri Jun 24 10:59:56 EST 2005 META-INF/maven/com.mycompany.app/

0 Fri Jun 24 10:59:56 EST 2005 META-INF/maven/com.mycompany.app/my-webapp/

3239 Fri Jun 24 10:59:56 EST 2005 META-INF/maven/com.mycompany.app/my-webapp/pom.xml

0 Fri Jun 24 10:59:56 EST 2005 WEB-INF/

215 Fri Jun 24 10:59:56 EST 2005 WEB-INF/web.xml

123 Fri Jun 24 10:59:56 EST 2005 META-INF/maven/com.mycompany.app/my-webapp/pom.properties

52 Fri Jun 24 10:59:56 EST 2005 index.jsp

0 Fri Jun 24 10:59:56 EST 2005 WEB-INF/lib/

2713 Fri Jun 24 10:59:56 EST 2005 WEB-INF/lib/my-app-1.0-SNAPSHOT.jar

这是如何运作的?首先,创建的父 POM(称为app)具有pom定义的模块的包装和列表。这告诉 Maven 在一组项目上运行所有操作,而不仅仅是当前一个(要覆盖此行为,您可以使用--non-recursive命令行选项)。

接下来,我们告诉 WAR 它需要my-appJAR。这做了一些事情:它使它在类路径上可用于 WAR 中的任何代码(在这种情况下没有),它确保 JAR 始终在 WAR 之前构建,并且它指示 WAR 插件将 JAR 包含在它的库目录。

您可能已经注意到这junit-4.11.jar是一个依赖项,但最终并未出现在 WAR 中。原因是test元素 - 它仅用于测试,因此不包含在 Web 应用程序中,因为编译时依赖项my-app是。

最后一步是包含父定义。这确保了 POM 始终可以被定位,即使项目是通过在存储库中查找而与其父项目分开分发的。

© 2002–2022

Apache 软件基金会

Just a moment...

a moment...Enable JavaScript and cookies to continue

maven的下载与安装教程(超详细)_maven安装-CSDN博客

>

maven的下载与安装教程(超详细)_maven安装-CSDN博客

maven的下载与安装教程(超详细)

最新推荐文章于 2024-01-22 22:34:26 发布

格子衫111

最新推荐文章于 2024-01-22 22:34:26 发布

阅读量10w+

收藏

1k

点赞数

383

分类专栏:

开发环境配置

文章标签:

maven的下载与安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u012660464/article/details/114113349

版权

开发环境配置

专栏收录该内容

3 篇文章

9 订阅

订阅专栏

前言

本篇文章是基于win10系统下载安装Maven的教程。

一、 Maven介绍

1. 什么是Maven

Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。

2. Maven的作用

依赖管理

依赖指的就是是 我们项目中需要使用的第三方Jar包, 一个大一点的工程往往需要几十上百个Jar包,按照我们之前的方式,每使用一种Jar,就需要导入到工程中,还要解决各种Jar冲突的问题.Maven可以对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制 一键构建项目

之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码, resources存放配置文件,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.

二、Maven 的下载安装

1. Maven软件的下载

使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。

http://maven.apache.org/download.cgi 目前最新版是 apache-maven-3.6.3 版本,点击进行下载即可. 为了方便,我上传到了百度网盘,也可在此链接下载。 链接:https://pan.baidu.com/s/12SuxtOXiUhNgkb0DH1eyCw 提取码:gnaf

2. Maven软件的安装

Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下,比如:H:\software\maven 下面。 解压后目录结构如下:

bin:存放了 maven 的命令boot:存放了一些 maven 本身的引导程序,如类加载器等conf:存放了 maven 的一些配置文件,如 setting.xml 文件lib:存放了 maven 本身运行所需的一些 jar 包

3. Maven环境变量配置

配置 MAVEN_HOME ,变量值就是你的 maven 安装的路径(bin 目录之前一级目录) 将MAVEN_HOME 添加到Path系统变量

4. Maven 软件版本测试

win+R 打开dos窗口,通过 mvn -v命令检查 maven 是否安装成功,看到 maven 的版本为 3.6.3 及 java 版本为 jdk-11 即为安装 成功。 打开命令行,输入 mvn –v命令,如下图:

三、Maven 仓库

Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)。

1. Maven的仓库分类

本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件

2. Maven 本地仓库的配置

maven仓库默认是在 C盘 .m2 目录下,我们不要将仓库放在C盘,所以这里要重新配置一下. 为了方便大家的使用,这里为大家提供了一个本地仓库,将 “repository.rar”解压至自己的 电脑上,我解压在 H:\software\repository 目录下(注意最好放在没有中文及空格的目录下)。 链接:https://pan.baidu.com/s/1tTJYt1uB95avjstAZQGNWQ 提取码:e58i 在maven安装目录中,进入 conf文件夹, 可以看到一个 settings.xml 文件中, 我们在这个文件中, 进行本地仓库的配置 打开 settings.xml文件,进行如下配置如下:

3. 配置阿里云远程仓库

Maven默认的远程仓库是在国外, 所以下载jar包时速度会非常慢, 这里推荐大家使用我大天朝的阿里云仓库

打开 settings.xml,找到 标签 , 下面的内容复制到 中 即可

alimaven

aliyun maven

http://maven.aliyun.com/nexus/content/groups/public/

central

至此,maven安装配置完毕,接下来可以去IDEA中创建Maven项目啦。 想了解如何在IDEA中创建Maven项目,请看我另外篇文章:IDEA中创建maven项目详细步骤

优惠劵

格子衫111

关注

关注

383

点赞

1048

收藏

觉得还不错?

一键收藏

知道了

41

评论

maven的下载与安装教程(超详细)

前言本篇文章是基于win10系统下载安装Maven的教程。一、 Maven介绍1. 什么是Maven​ Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。2. Maven的作用依赖管理依赖指的就是是 我们项目中需要使用的第三方

复制链接

扫一扫

专栏目录

【idea maven配置教程】IDEA配置Maven的超详细步骤

04-11

Maven是一个能使我们的java程序开发节省时间和精力,是开发变得相对简单,还能使开发规范化的工具,下面这篇文章主要给大家介绍了关于IDEA配置Maven的超详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下

Maven 教程之入门指南

weixin_34208185的博客

04-16

1405

:notebook: 本文已归档到:「blog」

简介

Maven 是什么

Maven 是一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西。

版本 - maven 有自己的版本定义和规则。

构建 - maven 支持许多种的应用程序类型,对于每一种支持的应用程序类型都定义好了一组构建规则和工具集。

输出物管理 - maven 可以管理项目构建的产物,并将其加入到用户库中。这个功能可...

41 条评论

您还未登录,请先

登录

后发表或查看评论

JavaWeb篇——开发黄金工具Maven的下载、安装和配置,细致入微的介绍!

最新发布

不积跬步无以至千里

01-22

930

把这段代码粘贴到F:\MyDownloads\Environment\apache-maven-3.8.7\conf\settings.xml配置文件中(也就是你们本地conf下的settings.xml文件)settings.xml文件中的localRepository:表示本地仓库的意思。(1)在我们地的maven问价按加下建立一个新的文件夹,叫maven-repo。(2)修改settings.xml配置文件,把本地仓库的位置放进去。8、配置maven全局JDK版本(我配置的1.8版本)

maven本地仓库下载

07-28

maven本地仓库下载

Maven的超详细安装步骤

weixin_45959865的博客

03-29

1015

Maven字面意思:专家、内行Maven是一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。依赖管理:jar之间的依赖关系,jar包管理问题统称为依赖管理项目构建:项目构建不等同于项目创建项目构建是一个过程【7步骤组成】,项目创建是瞬间完成的清理:mvn clean编译:mvn compile测试:mvn test报告:打包:mvn package安装:mvn install。

超详细Maven安装图文教程

生命的意义在于创造和毁灭

06-29

3229

Maven安装与配置以及Maven设置阿里云镜像

maven的下载安装配置教程(详细图文)

weixin_43836369的博客

05-01

5683

maven的下载安装配置教程(详细图文)

一、maven的下载

https://maven.apache.org/download.cgi下载zip文件

二、maven的安装

注意:maven的安装需要依赖jdk的安装,所以必须先安装完成jdk且配置好jdk环境变量后在进行maven的安装!!

jdk安装教程:

jdk 下载 安装 环境变量配置(图文)步骤教程超详细

maven的安装很简单,就是直接解压文件就行了(当然了,前提是你下载的是zip压缩包格式)

1、准备好maven安装文件

.

Maven 3 各版本 下载方法

猫头虎:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作:Libin9iOak,共赴知识与乐趣的探索之旅!

06-04

1万+

各版本Maven下载方法第一步:百度搜索Maven官网第二步:选择下载第三步:点击箭头所指~第四步:选择想下载的版本第四步:打开归档文件第五步: 选择对应系统的包下载完成解压,改本地仓库和远程仓库即可

第一步:百度搜索Maven官网

第二步:选择下载

第三步:点击箭头所指~

第四步:选择想下载的版本

第四步:打开归档文件

第五步: 选择对应系统的包

下载完成解压,改本地仓库和远程仓库即可

建议使用新阿里云仓库:

Maven下载、安装和配置教程(2023年6月10日)

i_for的博客

06-10

5019

MAVEN下载,安装和配置教程,保姆级教学,步步截图!

Maven的安装与配置(详细版)

qq_54769967的博客

11-05

2万+

一、安装Maven

安装路径:点击链接进去直接下载所需的版本Maven官网

一、最新版本下载方式

1、点击链接进入Maven官网

2、找到左侧栏的Download找到Files下载即可

二、所有版本的下载方式(里面新老版本都有)

1、点击链接进入Maven官网

2、找到左侧栏的Download

3、查看图二中箭头所指向的archives点击进去里面有所有的版本

4、找到需要的版本号进行对应下载

二、Maven的配置教程来咯

1、在官网下载完Maven后,放在自己修改的路径下,将压缩包解压

如何在最新中央仓库手动下载Maven依赖包并安装

qq_45206201的博客

06-14

4347

当pom.xml中的依赖Maven自动导入不完全时,可能是由于镜像地址没有这个版本依赖包,这时我们可以从Maven中央仓库下载jar包。

超级详细的Maven使用教程

热门推荐

进修的CODER

08-13

22万+

什么是Maven?

如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。

以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包...

【附安装包】Maven下载、安装、配置与使用(保姆级教程)

weixin_46485638的博客

12-07

2077

史上最精炼Maven安装教程!

Maven安装(超详解)

weixin_46991199的博客

05-09

8078

Maven安装(超详解)

史上最详细的Maven安装教程

weixin_44080187的博客

02-14

14万+

熟练的配置开发环境是每一个程序员必备的功课,俗话说:工欲善其事,必先利其器。

本文须知:安装maven环境之前要先安装javajdk环境(没有安装java环境的可以先去看安装JAVA环境的教程)Maven 3.3+ require JDK 1.7及以上。

第一步:下载maven(本教程安装的是3.8.4)

官方下载链接:https://maven.apache.org/download.cgi

Binary是可执行版本,已经编译好可以直接使用。Source是源代码版本,需要自己编译成可执..

maven如何下载外部仓库的包

weixin_70280523的博客

11-20

4592

下载jar包

记录maven详细下载和安装

weixin_46533227的博客

05-28

1351

-加入插件组,解决idea的maven项目tomcat插件debug无法运行的问题-->在F:\dev\apache-maven-3.6.1\conf下可以找到settings文件。系统变量:MAVEN_HOME = F:\dev\apache-maven-3.6.1。-- 引入国内镜像 maven的中央仓库是外网地址。3、修改国内下载镜像,不然很慢-复制下列文件内容就代表已经修改完成。-- 中央仓库在中国的镜像 -->--我们要设置本地仓库的位置。-- 阿里镜像 -->--更改默认的JDK-->

Maven下载及安装教程详解

Architect_CSDN的博客

04-09

1万+

进入Maven官网的下载页面:http://maven.apache.org/download.cgi#,如下图所示:选择当前最新版本:"apache-maven-3.3.9-bin.zip",下载到本地,解压缩到本地磁盘下。--bin:保存Maven的可执行命令,mvn和mvn.bat就是执行Maven工具的命令。--boot:该目录只包含一个plexus-classworlds-2.5.2....

maven的下载以及安装(超全)

weixin_63522344的博客

10-20

1747

我们为什么要使用maven?随着我们使用越来越多的框架,我们在项目中的jar包也越来越多,几个或者十几个我们还可能方便进行管理,但是上百的jar包就有点难以管理,更别说各个jar包还具有依赖,或许我们可以花费时间整理出一套可以使用的jar包,但这并不值得我们去做。Maven作为 Java 项目提供构建和依赖管理支持的工具能够极大地方便我们的开发。

maven安装及配置教程idea

07-28

- *1* *2* *3* [IDEA maven的安装与配置(超详细)](https://blog.csdn.net/m0_56183421/article/details/125123817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

格子衫111

CSDN认证博客专家

CSDN认证企业博客

码龄10年

暂无认证

144

原创

3万+

周排名

2万+

总排名

232万+

访问

等级

6685

积分

437

粉丝

1602

获赞

459

评论

5321

收藏

私信

关注

热门文章

mysql中一条insert语句批量插入多条记录

358289

maven的下载与安装教程(超详细)

268923

MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案

194111

group by分组后获得每组中时间最大的那条记录

148318

COUNT()函数详解

134295

分类专栏

工具使用

32篇

mybatis

4篇

Spring

1篇

算法与数据结构

6篇

面试题

6篇

JVM

8篇

杂谈

1篇

前端

5篇

Java SE

34篇

JavaWeb

27篇

Android知识点

19篇

开发环境配置

3篇

错误记录

16篇

Java 框架

21篇

TCP/IP协议和通讯原理

1篇

数据库

26篇

Linux

4篇

最新评论

Vue-cli(vue脚手架)超详细教程

醉挽清风141:

特别详细,感谢博主

手把手教你在IDEA中创建一个Maven+Spring MVC的入门项目

一人舛木:

tomcat 版本低一点 我tomcat10 不行 换成tomcat8就行了

手把手教你在IDEA中创建一个Maven+Spring MVC的入门项目

一人舛木:

wys

MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案

阿昱向前冲:

我的MAC系统用这个:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

maven的下载与安装教程(超详细)

2301_78123544:

大好人

最新文章

重写Java的equals方法,一般用于对象判重

VLOOKUP函数的使用方法

如何导出数据库数据字典

2024年1篇

2023年29篇

2022年44篇

2021年44篇

2020年12篇

2018年2篇

2017年10篇

2016年33篇

目录

目录

分类专栏

工具使用

32篇

mybatis

4篇

Spring

1篇

算法与数据结构

6篇

面试题

6篇

JVM

8篇

杂谈

1篇

前端

5篇

Java SE

34篇

JavaWeb

27篇

Android知识点

19篇

开发环境配置

3篇

错误记录

16篇

Java 框架

21篇

TCP/IP协议和通讯原理

1篇

数据库

26篇

Linux

4篇

目录

评论 41

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值