- 浏览: 297605 次
- 性别:
- 来自: 东京
文章分类
最新评论
-
80后的童年2:
企业级分布式搜索平台Solr视频教程网盘地址:https:// ...
企业级搜索引擎Solr使用入门指南 -
springdata_spring:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene / Solr 开发经验 -
springdata-jpa:
java web开发分页demo源代码下载:http://ww ...
简易java分页标签 -
zjf_sdnu:
兄弟,script写错了
jqGrid初学备注 -
85600367:
你好,请教一个问题。当进行分布式查询时solr无法查询到Luc ...
Lucene / Solr 开发经验
项目生命周期:process-resources -> compile -> process-classes -> process-test-resources ->
test-compile -> test -> prepare-package -> package
也可单独运行:
mvn resources:resources \
compiler:compile \
resources:testResources \
compiler:testCompile \
surefire:test \
jar:jar
Maven坐标:groupId:artifactId:packaging:version
groupId
团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。来自Sonatype的项目有一个以com.sonatype开头的groupId,而Apache Software的项目有以org.apache开头的groupId。
artifactId
在groupId下的表示一个单独项目的唯一标识符。
version
一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个特定的版本。而正在开发中的项目可以用一个特殊的标识,这种标识给版本加上一个“SNAPSHOT”的标记。
packaging
项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。
help插件:
$ mvn help:describe -Dplugin=help -Dfull
创建简单项目:
$ mvn archetype:create -DgroupId=org.clayz.simple -DartifactId=simple -DpackageName=org.clayz.simple
构建并打包:
$ mvn install
生成站点和报告:
$ mvn site
在不载入依赖情况下运行Java类:
$ mvn exec:java -Dexec.mainClass=org.clayz.simple.weather.Main
浏览项目依赖:
$ mvn dependency:resolve $ mvn dependency:tree
指定编译环境:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build>
忽略单元测试失败:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </build>
跳过单元测试:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>
构建打包好的命令行应用程序:
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
$ mvn assembly:assembly
创建一个web应用的pom:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.clay.web</groupId> <artifactId>clay-webapp</artifactId> <packaging>war</packaging> <version>1.0</version> <name>clay-webapp Maven Webapp</name> <url>http://clay.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_2.4_spec</artifactId> <version>1.1.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>clay-webapp</finalName> </build> </project>
为自定义JSP标签添加JSP 2.0规格说明:
<dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jsp_2.0_spec</artifactId> <version>1.1</version> <scope>provided</scope> </dependency>
多模块中父模块pom:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>simple-parent</artifactId> <packaging>pom</packaging> <name>Chapter 6 Simple Parent Project</name> <modules> <module>simple-weather</module> <module>simple-webapp</module> </modules> <parent> <artifactId>parent</artifactId> <groupId>org.sonatype.mavenbook.ch06</groupId> <version>1-SNAPSHOT</version> </parent> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </pluginManagement> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
其中simple-webapp子模块pom:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.sonatype.mavenbook.ch06</groupId> <artifactId>simple-parent</artifactId> <version>1-SNAPSHOT</version> </parent> <artifactId>simple-webapp</artifactId> <packaging>war</packaging> <name>Chapter 6 Simple Web Application Project</name> <dependencies> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_2.4_spec</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.sonatype.mavenbook.ch06</groupId> <artifactId>simple-weather</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>simple-webapp</finalName> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> </plugin> </plugins> </build> </project>
由Maven Reactor负责解析模块依赖以编译:
$mvn clean install
多模块的依赖优化:
上移共同的依赖至dependencyManagement
如果多于一个项目依赖于一个特定的依赖,你可以在dependencyManagement中列出这个依赖。父POM包含一个版本和一组排除配置,所有的子POM需要使用groupId和artifactId引用这个依赖。如果依赖已经在dependencyManagement中列出,子项目可以忽略版本和排除配置。
为兄弟项目使用内置的项目version和groupId
使用{project.version}和${project.groupId}来引用兄弟项目。兄弟项目基本上一直共享同样的groupId,也基本上一直共享同样的发布版本。使用${project.version}可以帮你避免前面提到的兄弟版本不一致问题。
如原始父pom:
<project> ... <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.0.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.3.0.ga</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>3.3.0.ga</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.5.ga</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </dependencyManagement> ... </project>
原始子pom:
<project> ... <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> </dependency> </dependencies> ... </project>
可以看出父pom与子pom在hibernate-annotations和hibernate-commons-annotations上有重复,优化后的父pom如下:
<project> <properties> <hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version> </properties> ... <dependencyManagement> ... <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>${hibernate.annotations.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>${hibernate.annotations.version}</version> </dependency> ... </dependencyManagement> ... </project>
发表评论
-
Eclipse快捷键
2011-12-22 14:05 1366好久没用了,再回顾一下,免得忘了。 编辑 ... -
设计模式备忘 - 行为型
2010-03-29 23:59 1490责任链模式(Chain of Responsibility) ... -
设计模式备忘 - 结构型
2010-03-28 17:50 1258适配器模式(Adapter) 将一个类的接口转换成客户希望的 ... -
设计模式备忘 - 创建型
2010-03-28 16:04 1187工厂模式 工厂模式主 ... -
SVN同步备份
2009-05-30 22:59 2935首先建立一个空的repository,svnadmin cre ... -
Eclipse下配置Tomcat debug
2009-05-24 21:16 8202Eclipse下自带有Tomcat debug插件,不过该插件 ... -
Jboss SSL on Debian
2009-03-22 12:17 12501. Generate self-signed certifi ... -
IzPack使用备注
2009-02-11 01:05 3767install.xml <?xml version=&q ... -
How to integrate Solr and Jboss
2008-09-11 22:50 1852本文转自 http://www.mail-archive.co ... -
什么是JMX?
2008-08-28 21:31 1351转自:http://www.blogjava.net/mlh1 ... -
JNLP介绍
2008-08-02 17:44 3001原文地址:http://blog.csdn.net/yq760 ... -
Apache虚拟主机配置
2008-07-10 16:42 3299Apache虚拟主机配置 来自 Clay的日记 ... -
Apache配置.htaccess\.htpasswd
2008-07-10 16:59 2743Apache配置.htaccess\.htpasswd 来自 ... -
Apache服务器中的URL重写的配置和应用
2008-07-10 17:15 2361Apache服务器中的URL重写的配置和应用 来自 Clay的 ... -
Log4j常用配置
2008-01-31 18:25 1816常用log4j配置,一般可以采用两种方式,.propertie ... -
SVN常用目录结构
2007-12-26 22:29 5119特殊目录名说明 trunk 主干,存储最新稳定版本 tag ... -
Windows下SVN服务器的搭建
2007-12-26 22:25 85251,软件下载 下载Subvers ... -
针对ECLIPSE的SUBVERSION插件
2007-12-15 16:30 3350摘要 Subversion (SVN) ...
相关推荐
具体介绍了maven初学搭建项目一个流程,内容详细,并且介绍主流maven插件比如cargo,checkstyle,findbugs以及在tomcat上项目的运行
Java Maven初学者教程与示例是一个为初学者设计的资源包,旨在帮助他们快速掌握Maven这一强大的Java项目管理和构建工具。Maven是Apache软件基金会开发的一个项目管理工具,它通过一个项目对象模型(Project Object ...
### Maven初学笔记 #### Maven概述 **Apache Maven** 是一款功能强大的软件项目管理和综合工具。它基于项目对象模型(Project Object Model, POM)的概念,能够从一个中心信息源管理项目的构建、报告以及文档。这...
** Maven 概述** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一个统一的构建过程,简化了项目的构建、依赖管理以及文档生成等任务。Maven 3.5.2是Maven的一个稳定版本,包含了众多...
初学者教程 - 28 分钟内的示例 安装 Eclipse 和 Java 课程大纲 我们将使用 Handson Real World 示例来了解 Maven 可以做什么。 我们将了解 Maven 如何使应用程序开发人员的生活变得轻松。 我们将学习 Maven 如何帮助...
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
这是一个压缩包。这是一个maven项目,使用Java语言开发的web工程,使用了SpringMVC+Spring+Mybatis,建议初学者入手。
对于初学者来说,Maven简化了项目结构,通常遵循标准的目录布局,如src/main/java存放源代码,src/main/resources存放资源文件,src/test/java存放测试代码。这种结构使得团队协作变得更加清晰和有序。 与IDE的集成...
Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...
**正文** Maven是Java开发领域中不可或缺的项目管理和构建工具,由Apache Software Foundation开发并维护。...因此,无论是初学者还是经验丰富的开发者,都应该掌握Maven的使用技巧,以适应快速变化的软件开发环境。
一个基础的maven项目,供给初学maven的同学检阅如何配置maven项目,采用jdk1.8,maven3.5.2,使用阿里云maven服务器导入jar包,内涵基础ssm的pom文件,包括跨域访问,供给大家学习交流使用。
使用Maven导入Maven工程的视频教程 仅供学习交流! 后续会持续分享相关资源,记得关注哦! 使用Maven导入Maven工程的视频教程 使用Maven导入Maven工程的视频教程 使用Maven导入Maven工程的视频教程 使用Maven导入...
【 Maven学习极品:初学者的完美指南】 Maven,一个由Apache软件基金会开发的项目管理工具,是Java世界中不可或缺的一部分。它简化了构建过程,通过自动管理项目的依赖关系,使得开发者可以专注于编写代码,而不是...
【标题】"maven之开源中国Maven库" 指的是使用 Maven,一个流行的Java项目管理和集成工具,与开源中国的Maven仓库进行交互。开源中国Maven库是中国的一个开源软件资源平台,提供了大量的开源Java库,使得开发者可以...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和文档。Maven 3.6.0是该工具的一个稳定版本,提供了许多改进...
apache-maven-3.0.5 apache-maven-3.1.1 apache-maven-3.2.5 apache-maven-3.3.9 apache-maven-3.5.4 apache-maven-3.6.3 apache-maven-3.8.5 每个版本包含4个文件: apache-maven-3.8.5-bin.tar.gz apache-maven-...
在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是项目管理和构建的首选。本篇将详细讲解如何在Mac系统上,特别是配备M1芯片的MacBook上安装Apache Maven 3.6.3。 Apache Maven是一个基于项目...