遵照下面的步骤创建一个简单的maven项目和运行几个maven目标
1.创建项目目录C:/daven
2.创建java源代码的存放目录
C:/daven/src/java
3.创建与包结构相同的目录结构
C:/daven/src/java/smartsoft/daven
4.创建一个简单的类 Box
文件名:
c:/daven/src/java/smartsoft/daven/Box.java
内容:
public class Box {
private int length;
private int width;
public Box(int length, int width) {
this.length = length;
this.width = width;
}
public int getArea(){
return length * width;
}
}
5.创建项目对象模型文件名:
C:/daven/project.xml
内容
<project>
<id>daven</id>
<currentVersion>1.0</currentVersion>
<build>
<sourceDirectory>
${basedir}/src/java
</sourceDirectory>
</build>
</project>
现在运行一个Maven的内建目标,java:compile.打开命令提示符,切换到项目目录,并且键入: maven java:compile
你将看到如下的输出:
C:/daven>
maven java:compile
java:prepare-filesystem:
java:compile:
[echo] Compiling to C:/daven/target/classes
BUILD SUCCESSFUL
Total time: 33 seconds
注意java:compile目标有一个前提条件,java:prepare-filesystem 目标.maven的前提条件类似于ant的depends.
现在你查看你的文件系统,你将看到maven为你生成了保存类文件的目录结构.
c:/daven
src
java
smartsoft
daven
Box.java
target
classes
smartsoft
daven
Box.class
test-classes
test-reports
使用一下其他的目标,在命令提示符下键入:maven jar
你将看到如下输入:
C:/daven>maven jar
java:prepare-filesystem:
java:compile:
[echo] Compiling to C:/daven/target/classes
java:jar-resources:
test:prepare-filesystem:
test:test-resources:
test:compile:
[echo] No test source files to compile
test:test:
[echo] No tests to run
BUILD SUCCESSFUL
Total time: 6 seconds
注意jar目标有许多的前提目标 java:prepare-filesystem
java:compile
java:jar-resources
test:prepare-filesystem
test:test-resources
test:compile
test:test
maven 还会在target目录中创建一个名为daven-1.0.jar的文件.它的名字来自于项目对象模型文件中的 Id和currentVersion元素.现在执行 clean目标.
在命令 提示符下键入:
java clean
你又会得到这样的输出:
C:/daven>
maven clean
clean:clean:
[delete] Deleting directory C:/daven/target
BUILD SUCCESSFUL
Total time: 7 seconds
如果你再次检查你的文件系统,你将发祥生成的target目录被删除了.
理解目标
你已经运行了三个目标java:compile,jar.clean.虽然maven中的goal等同于ant中的target, 但是你却不用创建自己的目标,maven已经提供了打多数你需要的目标.到写此文时,maven 已经有312个goal了.(译者注:你可以用maven -g 命令来查看所有的安装插件和目标)
记住maven的目标时组织到插件中的.实际上,在maven的主页上又这样的描述 "像人造卫星般围绕的一个小核心"(原文:"small core that works with a satellite of plug-ins") 大多数maven的功能以插件的形式提供,插件提供了目标名的前缀.例如,java:compile将调用 java插件的compile目标.如果不带任何目标名运行插件,那么将会调用插件的默认目标.例如 maven jar将调用jar插件的默认目标.

被折叠的 条评论
为什么被折叠?



