文章出处:http://bakcom.iteye.com/blog/280604
Maven2的运行命令为:mvn,
常用命令为:
mvnarchetype:create:创建Maven项目
mvncompile:编译源代码
mvntest-compile:编译测试代码
mvntest:运行应用程序中的单元测试
mvnsite:生成项目相关信息的网站
mvnclean:清除目标目录中的生成结果
mvnpackage:依据项目生成jar文件
mvninstall:在本地Repository中安装jar
mvneclipse:eclipse:生成Eclipse项目文件
生成项目
建一个JAVA项目:mvnarchetype:create -DgroupId=com.demo -DartifactId=App
建一个web项目:mvnarchetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp
生成Eclipse项目
普通Eclipse项目执行:mvneclipse:eclipse
Eclipse WTP项目执行:mvneclipse:eclipse–Dwtpversion=1.0
(wtp1.0以上版本均可用)
pom.xml文件基本节点介绍
<
project
>:文件的根节点.
<
modelversion
>:pom.xml使用的对象模型版本.
<
groupId
>:创建项目的组织或团体的唯一Id.
<
artifactId
>:项目的唯一Id,可视为项目名.
<
packaging
>:打包物的扩展名,一般有JAR,WAR,EAR等
<
version
>:产品的版本号.
<
name
>:项目的显示名,常用于Maven生成的文档。
<
url
>:组织的站点,常用于Maven生成的文档。
<
description
>:项目的描述,常用于Maven生成的文档。
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。
目前<scope>可以使用5个值:
compile:缺省值,适用于所有阶段,会随着项目一起发布。
provided:类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
定义自己的结构
新建一个archetype项目:
mvnarchetype:create\
-DgroupId=cn.prof\
-DartifactId=prof-archetype\
-DarchetypeArtifactId=maven-archetype-archetype
主要的模板文件:archetype-resources/pom.xml
修改其中内容
修改META-INF/maven/archetype.xml中定义了相关的sources
安装此项目:mvninstall
执行下面的命令创建新目录的项目:
mvnarchetype:create -DgroupId=com.mergere.mvnbook \
-DartifactId=proficio-example\
-DarchetypeGroupId=com.xxx.mvn\
-DarchetypeArtifactId=prof-archetype\
-DarchetypeVersion=1.0-SNAPSHOT
目录说明
Maven2Directory |
||||
目录 |
二级目录 |
三级目录 |
四级目录 |
说明 |
pom.xml |
Maven2的项目设置文件 |
|||
src/ |
源码目录 |
|||
main/ |
项目主体目录根 |
|||
java/ |
源代码目录 |
|||
resources/ |
所需资源目录 |
|||
filters/ |
资源过滤文件目录 |
|||
assemby/ |
Assembly descriptors |
|||
config/ |
配置文件根目录 |
|||
webapp/ |
web应用目录 |
|||
WEB-INF/ |
WEB-INF目录 |
|||
test/ |
项目测试目录根 |
|||
java/ |
测试代码目录 |
|||
resources/ |
测试所需资源目录 |
|||
filters/ |
测试资源过滤文件目录 |
|||
site/ |
与site相关的资源目录 |
|||
target/ |
输出目录根 |
|||
classes/ |
项目主体输出目录 |
|||
test_classes/ |
项目测试输出目录 |
|||
site/ |
项目site输出目录
|
碰到的问题
<!---->1.<!---->当M2eclipse插件装上之后,会报这个错
Eclipse is running in a JRE, but a JDK is required
Some Maven plugins may not work when importing projects or updating source folders.
解决办法:查看eclipse\readme\readme_eclipse.html里面有详细说明,在Selecting a workspace这一节
创建一个快捷方式,设定目标位置为D:\eclipse_jee\eclipse.exe -vm D:\Java\jdk1.5.0_10\bin\javaw
因为默认vm为jdk\jre\bin\javaw,直接改到jdk下,错误即可消除
<!---->2.<!---->使用命令mvneclipse:eclipse–Dwtpversion=1.0之后,导入的项目Project Facet的java还是1.4,而我Eclipse上设置的是5.0
解决办法:在pom.xml中plugins加入说明就可以了
- <plugins>
- <plugin>
- <artifactId> maven-compiler-plugin </artifactId>
- <configuration>
- <source> 1.5 </source>
- <target> 1.5 </target>
- </configuration>
- </plugin>
- </plugins>
- <plugins><plugin><artifactId> maven-compiler-plugin </artifactId><configuration><source> 1.5 </source><target> 1.5 </target></configuration></plugin></plugins>
- <plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.5</source><target>1.5</target></configuration></plugin></plugins>
<!----><!----><!----><!---->
3. 在使用命令mvneclipse:eclipse 之后,import到Eclipse,然后在Eclipse项目上点右键,选择插件Maven>Enable Dependency Management后,会报重复引用依赖的错误
解决办法 :再执行mvneclipse:eclipse然后刷新Eclipse的项目,取消掉maven插件的引用依赖,错误就会消除
4. Failure executing javac, but could not parse the error:
编译器 (1.5.0_10) 中出现异常。 如果在 Bug Parade 中没有找到该错误,请在 Java Developer Connection (http://java.sun.com/webapps/bugreport ) 对该错误进行归档。请在报告中附上您的程序和以下诊断信息。谢谢您的合作。
java.nio.BufferOverflowException