`

Maven2学习

    博客分类:
  • Java
阅读更多
POM:Project Object Model
Maven2  Directory 目录结构
pom.xml Maven2 的项目设置文件
src/ 源码目录
src/main/ 项目主体目录根
src/main/java/ 源代码目录
src/main/java/resources/ 所需资源目录
src/main/java/filters/ 资源过滤文件目录
src/main/java/assemby/ Assembly descriptors
src/main/java/config/ 配置文件根目录
src/main/java/webapp/ web 应用目录
src/main/java/webapp/WEB-INF/ WEB-INF 目录 
src/test/ 项目测试目录根
src/test/java/ 测试代码目录
src/test/resources/ 测试所需资源目录
src/test/filters/ 测试资源过滤文件目录
site/ 与site 相关的资源目录
target/ 输出目录根
target/classes/ 项目主体输出目录
target/test_classes/ 项目测试输出目录
target/site/ 项目site 输出目录
Maven2 POM.xml元素
modelVersion     描述这个POM文件遵从哪个版本的项目描述符.
groupId     针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与其他项目的类似名字来进行区分(比如:org.apache.maven)
artifactId     在给定groupID 的group里面为artifact 指定的标识符是唯一的 artifact 代表的是被制作或者被一个project应用的组件。对于Maven项目的artifact 的例子包括:一些JARs, 原代码以及二进制的发布以及WARs.
packaging     这个项目生产出来的artifact 类型,举个例子 jar war  pom Plugins 能够创建他们自己的包,包括包的类型,所以这个列表不可能包含所有可能的类型 
name     当前项目的全称
version     当前项目产生的artifact的当前版本
description     当前项目的一个细节描述,当需要描述这个项目的时候被Maven所用,比如在web 站点中。 这个元素能够被指定为CDATA 类型,允许在描述器中 HTML的tags, 并不鼓励用空白文本来表示。 如果你需要去修改生成的web 站点的索引页,你能够用你自己的索引来代替自动生成的文本。
url     当前项目的主页的URL
dependencies     这个元素描述了所有与当前项目相关的依赖.这些依赖被用作创建一个编译时的路径. 他们被自动的从资源库中下在下来依据当前项目的定义。
parent     给出父项目的位置,如果存在上一级父项目的话。如果没有特别指出的话,值就是父项目对于当前项目而言。位置是一个 as a group ID, artifact ID 和version元素的组合。
prerequisites     描述当前项目的编译环境的先决条件
issueManagement     当前项目的发布管理信息。
ciManagement     当前项目的连续集成信息。
inceptionYear     当前项目开始的年份, 用4位数字描述. 涉及到介绍情况时用作提供版权信息
mailingLists     包含的信息包括邮件列表
developers     描述当前的项目的开发人员的信息
contributors     描述对当前项目有贡献的人员的信息,不特指开发人员
licenses     这个元素描述了当前项目的所有的许可文件。每一个许可文件用一个许可元素来描述,然后描述额外的元素. 通常只列出适用于这个项目的许可文件以及适用于 依赖的非licenses。如果多个licenses都列出来了,那么假设这个用户选择其中的所需的,而不是接受所有的许可文件。
scm     指定当前项目中的版本控制工具,比如CVS, Subversion, 等等。
organization     这个元素描述这个项目所属组织的各种属性的描述。这些属性应用于文档创建的时候 (版权通知和链接).
build     创建项目时必须的信息。
profiles     本地项目编译档案文件时的列表,被激活时会修改build的过程
modules     模块 (有时被叫做子项目)作为当前项目的一部分.每一个被列出来的子模块都指向包含这个模块的目录文件的相对路径
repositories     发现依赖和扩展的远程资源库
pluginRepositories     发现plugins 的远程资源库的列表,主要是为了编译和报告
reporting     这个元素包括报告的plugins 的指定,用作Maven生成站点的自动生成报告.这些报告将会运行当用户执行mvn site. 所有的报告将会包括在浏览器的导航栏中。
dependencyManagement     缺省的依赖信息将会从这个元素中继承。这些依赖在这一部分中被不立刻被解决的。当一个源于这个POM的元素描述了一个依赖根据匹配的 groupId 和 artifactId,这个部分的版本和其他值用作那些还没有指定的依赖。
distributionManagement     对于一个项目分配的信息允许对于远程web服务器和资源库的site和artifacts配置。
properties     属性可以作为POM的自始自终的替换物,如果可行的话可以用作resources 的过滤器,格式是<name>value</name>. 
    在 POM 4 中, <dependency> 中还引入了 <scope> ,它主要管理依赖的部署。

目前 <scope> 可以使用 5 个值:

compile :缺省值,适用于所有阶段,会随着项目一起发布。

provided :类似 compile ,期望 JDK 、容器或使用者会提供这个依赖。如 servlet.jar 。

runtime :只在运行时使用,如 JDBC 驱动,适用运行和测试阶段。

test :只在测试时使用,用于编译和运行测试代码。不会随项目发布。

system :类似 provided ,需要显式提供包含依赖的 jar , Maven 不会在 Repository 中查找它。





一. The pulgin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or valid version could be found

  安装官方标准的安装方式(http://maven.apache.org/download.html#Installation)安装完毕,运行mvn --version没有问题。

  然后按照"maven in 5 minutes"(http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) 的第一个例子,执行

mvnarchetype:create-DgroupId=com.mycompany.app-DartifactId=my-app

  结果报错:

  The pulgin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or valid version could be found
  ......

  google了一下发现解决方案,原来是网络配置的问题,如果使用代理上网必须修改maven的配置文件加入相应的代理信息。

  打开文件 maven/conf/settings.xml,找到<proxies>,将原来注释掉的<proxy>打开,修改相应的信息即可。

  注意:

  1.)<host>iproxy-sh.cn.ao.ericsson.se</host> 这里不要用"http://"开头,否则会无法连接

  2. ) 如果用户名、密码不需要,可以删除<username><password>,设置为空也行。


Maven2采用集中化方式管理Jar包
凡用maven构建的java工程都可以重用统一管理下的架包,所以必须有一个统一存放jar文件的地方,这就是jar仓库,不论是开发还是部署都会建立一个本地仓库。这个仓库的位置默认是X:\Documents and Settings\Administrator.LIPENG\.m2\repository(X是你操作系统所在盘符)下,你可以修改配置文件改变默认的输出位置。该配置文件在maven目录下的conf子目录下。文件名叫settings.xml。在配置文件中加入如下节点信息即可D:/Repository。不过不建议修改。

<build> <!-- 项目的构建信息 -->
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <outputDirectory>target\classes</outputDirectory>
    <testOutputDirectory>target\test-classes</testOutputDirectory>
    <directory>target</directory> <!-- 构建后生成文件(jar,site等)所在位置 -->
</build>
配置项目的构建信息,主要有指定目录,包括源代码、测试源代码、输出目录、资源目录等.如果没有特殊需求以上的pom已经足够了

reporting

通过使用相应的report plug-in可以生成各种各样的report.如javadoc,junit test report,代码检查等


<plugin>
    <groupId>org.apache.maven.plugins</groupId> <!--java doc -->
    <artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId> <!-- 代码检查 -->
    <artifactId>maven-checkstyle-plugin</artifactId>
    <configuration>
        <configLocation>config/sun_checks.xml</configLocation>
    </configuration>
</plugin>
<plugin>
    <groupId>org.codehaus.mojo</groupId> <!-- test 结果报表 -->
    <artifactId>surefire-report-maven-plugin</artifactId>
</plugin>
<plugin>
    <groupId>org.codehaus.mojo</groupId> <!-- 源代码的HTML化 -->
    <artifactId>jxr-maven-plugin</artifactId>
</plugin>

mvn compiler:compile 编译你的原文件
mvn jar:jar 打包
mvn site:site 生成项目站点
分享到:
评论

相关推荐

    Maven 2 学习笔记.txt

    ### Maven 2 学习笔记 #### 一、Maven 项目的基本结构及创建 Maven使用特定的目录结构来组织项目文件,通过`mvn archetype:create`命令可以快速创建项目模板。例如: ```shell mvn archetype:create -DgroupId=...

    maven2学习手册

    ### Maven2 学习手册概览 Maven2作为开源项目的构建工具,相较于其前身Maven1,在功能和性能上进行了显著的优化和扩展。它不仅提升了构建速度,还简化了配置过程,引入了生命周期的概念,并增强了依赖管理,使之...

    Maven3.0学习文档

    【Maven 3.0 学习文档】 Maven 是一个强大的项目管理和自动化构建工具,主要应用于Java项目。它的核心理念是Project Object Model (POM),这是一个XML格式的配置文件,用于描述项目的元数据,包括项目的依赖、构建...

    maven项目学习笔记记录

    **Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...

    maven3.0.4学习教程

    本地仓库是Maven默认的依赖存储位置,中央仓库(https://repo.maven.apache.org/maven2)是默认的远程依赖来源。若需自定义远程仓库,可在settings.xml中配置。 5、 聚合与继承 5.1. 聚合 聚合(Aggregation)允许...

    maven学习.zip

    本教程"maven学习.zip"主要关注的是Maven插件的使用,下面将详细介绍Maven插件及其在实际开发中的应用。 **1. Maven插件的概念** Maven插件是Maven生态系统的核心组成部分,它们提供了各种功能,如编译源代码、打包...

    maven2详细教程

    学习Maven 2教程需要基本的Java开发知识,对构建工具的理解,以及使用Eclipse 3.2作为IDE的能力。熟悉大型开源项目和多种构建技术会有所帮助,但不是必须的。系统上需要安装JDK 1.5.0_09或更高版本,以及Eclipse ...

    Maven2 5分钟学习教程(中文)----maven2 官方文档翻译

    **Maven 2 5分钟学习教程(中文)——官方文档翻译** Maven是一个强大的Java项目管理工具,它简化了构建、依赖管理和项目生命周期的管理。这篇5分钟学习教程是Maven 2官方文档的中文翻译,旨在帮助初学者快速理解和...

    maven2快速入门教程

    ** Maven2 快速入门教程 ** Maven是Apache软件基金会开发的一款项目管理和集成工具,主要应用于...学习并掌握Maven2,能让你在项目管理中更加得心应手。在实际应用中,不断实践和探索,你会发现更多Maven的便利之处。

    Maven2_基础教程

    通过本教程的学习,读者不仅可以熟练掌握Maven2的基本操作,还能了解到如何高效地利用Maven进行项目开发和管理。希望这些知识点能够帮助大家更好地理解和应用Maven2,在实际项目中发挥更大的作用。

    maven2的学习记录.docx

    Maven2 基础知识点总结 Maven2 是一个基于 Java 的项目管理和构建工具,提供了一个灵活的方式来管理项目的构建、报告和文档。下面是 Maven2 的一些基础知识点总结。 一、Maven2 项目结构 Maven2 项目结构主要分为...

    maven教案-maven入门学习资料

    2. **依赖管理**:Maven 使用中央仓库管理所有项目的依赖关系,项目只需要在 POM 文件中声明所需依赖,Maven 就会自动下载并管理这些依赖,解决了jar包的重复拷贝和版本冲突问题。 【 Maven 构建方式的比较】 - **...

    maven学习资源整理

    ** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...

    Maven学习文档

    ### Maven 学习文档知识点详解 #### 一、Maven简介 Maven 是一款非常流行的 Java 项目的构建管理和依赖管理工具。它可以帮助开发者自动化构建过程,简化项目管理和部署流程。通过使用 Maven,开发者可以轻松地管理...

    maven2详细教程.doc

    学习Maven 2 需要下载并安装Maven,然后创建并构建第一个项目。通过Eclipse等IDE的Maven插件,可以方便地集成Maven到开发环境中。掌握定制POM以满足项目需求,以及参与多个项目构建是进阶的重要步骤。 **总结** ...

    maven学习指南java(经典,实例)

    2. Maven环境设置:包括系统要求、如何验证Java安装、设置JAVA环境变量、下载和解压Maven档案文件、设置Maven环境变量以及如何验证Maven安装是否成功。 3. Maven项目对象模型(POM):详细解释POM文件的结构和作用...

    Maven2指导手册

    **Maven2 指南** Maven2 是一个强大的构建工具,专为Java项目设计,旨在简化构建过程,统一项目配置。...对于初次接触Maven2的开发者,可能会遇到一定的学习曲线,但一旦掌握,将极大地提升工作效率。

Global site tag (gtag.js) - Google Analytics