附件中是《maven实战》前三章的电子版
maven用于项目管理,项目jar包的依赖,有三个坐标groupId,artifactId,version(版本号)。
主要常用的命令有
mvn clean,清除生成的类文件,即target文件夹下的classes文件
mvn compile,编译
mvn package,将项目打包为jar文件或其他压缩文件,具体由pom文件指定
mvn install,将jar包安装到本地库中,(默认在C盘的C:\Documents and Settings\用户名 下)
mvn eclipse:eclipse生成eclipse项目
mvn clean install -DskipTests -Denv=dev 编译打包并跳过测试
mvn play2:run -Dplay2.httpPort=9001 -Dplay2.serverJvmArgs="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=9991,suspend=n" maven启动play项目
9991是远程调试接口
如果想看依赖的第三方jar包的源码:
eclipse的设置:勾选windows-Preferences-Maven-Download Artifact Sources 这个选项
使用maven命令行下载依赖包的源代码:
mvn dependency:sources
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
-DdownloadSources=true 下载源代码Jar -DdownloadJavadocs=true 下载javadoc包
如果执行后还是没有下载到,可以到仓库上搜一下,然后放到指定的目录下即可,就可以在项目里看到源码了
pom文件如下:<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.juvenxu.mvnbook</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
<dependencies> //依赖于junit-4.8.2.jar包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope> //如果在src文件夹下的java文件中import junit的类会出错,但如果在test文件夹下就不会出错。默认为compile范围,
</dependency>
</dependencies>
<build>
<plugins>
<plugin> //用于执行,指定要执行的主类
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
这样再执行mvn clean install,就会在target文件夹下生成两个jar文件,其中一个以original开头的,是没有指定MainClass的,另外一个是在meta-info文件夹下的MANIFEST.MF文件中指定了Main class。
再用java -jar命令就可以执行这个可执行的jar文件了
需要在maven的pom文件中添加如下的插件,才能保证在eclipse中可以正确的运行maven的命令:
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<failOnError>false</failOnError>
</configuration>
</plugin></plugins>
</build>
解决maven项目中源文件的编码问题,在pom文件中的properties添加如下元素:
<project.build.sourceEncoding>GBK</project.build.sourceEncoding>
<project.reporting.outputEncoding>GBK</project.reporting.outputEncoding>
另外:
Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。
用户可以通过两种方式调用Maven插件目标。第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定,这样用户在命令行只是输入生命周期阶段而已,例如Maven默认将maven-compiler-plugin的compile目标与 compile生命周期阶段绑定,因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。第二种方式是直接在命令行指定要执行的插件目标,例如mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关。
认识上述Maven插件的基本概念能帮助你理解Maven的工作机制,不过要想更高效率地使用Maven,了解一些常用的插件还是很有必要的,这可 以帮助你避免一不小心重新发明轮子。多年来Maven社区积累了大量的经验,并随之形成了一个成熟的插件生态圈。Maven官方有两个插件列表,第一个列 表的GroupId为org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plugins/index.html。第二个列表的GroupId为org.codehaus.mojo,这里的插件没有那么核心,但也有不少十分有用,其地址为:http://mojo.codehaus.org/plugins.html。
分享到:
相关推荐
该文档内容从下载 安装 配置环境都有。 除此之外还将idea和maven的一些快捷键,一些idea设置,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使用指南
Maven使用tomcat8-maven-plugin插件
Maven 使用入门.pdf
maven入门教程,maven是一个有用的构建工具,把源代码构建成可发布构件的工具,值得一学。
Maven使用手册,介绍了maven的一些日常使用和配置
Maven使用简介
Maven使用
maven使用说明文档 maven使用说明文档 maven使用说明文档
maven使用及Nexus搭建Maven私服
Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...
Maven使用讲解.ppt Maven简介及安装 Maven基本使用 Maven基本概念 POM介绍 Maven多模块项目 Maven插件应用 Maven仓库
maven 使用入门第三章,只有第三章技术文档资料。
Maven的使用教程,其中包括:maven项目开发中的问题及解决方案,maven安装与配置等
Maven使用方法
Maven简单使用说明
Maven 是一个项目管理和构建自动化工具,Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
maven入门使用,很详细. 本文档介绍一些在使用Maven过程中不是必须的,但十分有用的实践。