您的位置:首页 > 其它

Maven2入门--超级简单

2010-08-11 14:19 176 查看
maven2

能做什么?


maven
可以帮我们更好的管理软件,包括编译,文档生成,管理项目依赖等。


maven

来替代
ant


j2ee

ant
早已是事实上的标准。但是,每次开发一个新的项目,总要从头写
ant

buildfile
(当然,大多数情况直接
copy
旧的
buildfile
)。用
maven
则可省去很多步骤,因为它知道该怎么编译项目。

看看
maven
怎么开始一个新
java
项目:

1.
创建一个项目模板,其中
groupId
是程序的
package

artifactId
是项目的名字。这里假定你的项目的
package

tutorial,
名称是
tutorial


> mvn archetype:create -DgroupId=tutorial -DartifactId=tutorial

[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'archetype'.

[INFO] ------------------------------------------------------------------------

[INFO] Building Maven Default Project

[INFO] task-segment: [archetype:create] (aggregator-style)

[INFO] ------------------------------------------------------------------------

[INFO] Setting property: classpath.resource.loader.class
=> 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.

[INFO] Setting property: velocimacro.messages.on => 'false'.

[INFO] Setting property: resource.loader => 'classpath'.

[INFO] Setting property: resource.manager.logwhenfound => 'false'.

[INFO] **************************************************************

[INFO] Starting Jakarta Velocity v1.4

[INFO] RuntimeInstance initializing.

[INFO] Default Properties File: org/apache/velocity/runtime/defaults/velocity.properties

[INFO] Default ResourceManager initializing. (class org.apache.velocity.runtime.resource.ResourceManagerImpl)

[INFO] Resource Loader Instantiated: org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader

[INFO] ClasspathResourceLoader : initialization starting.

[INFO] ClasspathResourceLoader : initialization complete.

[INFO] ResourceCache : initialized. (class org.apache.velocity.runtime.resource.ResourceCacheImpl)

[INFO] Default ResourceManager initialization complete.

[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Literal

[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Macro

[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Parse

[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Include

[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Foreach

[INFO] Created: 20 parsers.

[INFO] Velocimacro : initialization starting.

[INFO] Velocimacro : adding VMs from VM library template : VM_global_library.vm

[ERROR] ResourceManager : unable to find resource 'VM_global_library.vm' in any resource loader.

[INFO] Velocimacro : error using VM library template
VM_global_library.vm :
org.apache.velocity.exception.ResourceNotFoundException: Unable to find
resource 'VM_global_library.vm'

[INFO] Velocimacro : VM library template macro registration complete.

[INFO] Velocimacro : allowInline = true : VMs can be defined inline in templates

[INFO] Velocimacro : allowInlineToOverride = false : VMs defined inline may NOT replace previous VM definitions

[INFO] Velocimacro : allowInlineLocal = false : VMs defined inline will be global in scope if allowed.

[INFO] Velocimacro : initialization complete.

[INFO] Velocity successfully started.

[INFO] [archetype:create]

[INFO] Defaulting package to group ID: tutorial

[INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: checking for updates from central

[INFO] ----------------------------------------------------------------------------

[INFO] Using following parameters for creating Archetype: maven-archetype-quickstart:RELEASE

[INFO] ----------------------------------------------------------------------------

[INFO] Parameter: groupId, Value: tutorial

[INFO] Parameter: packageName, Value: tutorial

[INFO] Parameter: package, Value: tutorial

[INFO] Parameter: artifactId, Value: tutorial

[INFO] Parameter: basedir, Value: G:/tmp

[INFO] Parameter: version, Value: 1.0-SNAPSHOT

[INFO] ********************* End of debug info from resources from generated POM ***********************

2.
现在,看看生成了什么:

> tree /f /a

G:.

/---tutorial

| pom.xml

|

/---src

+---main

| /---java

| /---tutorial

| App.java

|

/---test

/---java

/---tutorial

AppTest.java

3.
好了,编译模板程序看看
(
直接打包成
jar
文件
)


> cd tutorial

> mvn install

[INFO] Scanning for projects...

[INFO] ------------------------------------------------------------------------

[INFO] Building tutorial

[INFO] task-segment: [install]

[INFO] ------------------------------------------------------------------------

[INFO] [resources:resources]

[INFO] Using default encoding to copy filtered resources.

[INFO] [compiler:compile]

[INFO] Compiling 1 source file to G:/tmp/tutorial/target/classes

[INFO] [resources:testResources]

[INFO] Using default encoding to copy filtered resources.

[INFO] [compiler:testCompile]

[INFO] Compiling 1 source file to G:/tmp/tutorial/target/test-classes

[INFO] [surefire:test]

[INFO] Surefire report directory: G:/tmp/tutorial/target/surefire-reports

-------------------------------------------------------

T E S T S

-------------------------------------------------------

Running tutorial.AppTest

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] [jar:jar]

[INFO] Building jar: G:/tmp/tutorial/target/tutorial-1.0-SNAPSHOT.jar

[INFO] [install:install]

[INFO] Installing
G:/tmp/tutorial/target/tutorial-1.0-SNAPSHOT.jar to C:/Documents and

Settings/guest/.m2/repository/tutorial/tutorial/1.0-SNAPSHOT/tutorial-1.0-SNAPSHOT.j

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESSFUL

[INFO] ------------------------------------------------------------------------

4.
运行看看:

> java -cp target/tutorial-1.0-SNAPSHOT.jar tutorial.App

Hello World!

不需要写复杂的
ant buildfile
,简单的命令,省了许多麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: