maven构建工程

一、使用Maven构建一个简单的Java项目

 

mvn archetype:generate -DgroupId=com.hy -DartifactId=my-java -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

[INFO] Parameter: groupId, Value: com.hy
[INFO] Parameter: packageName, Value: com.hy
[INFO] Parameter: package, Value: com.hy
[INFO] Parameter: artifactId, Value: my-java
[INFO] Parameter: basedir, Value: /home/haha/work/ws
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /home/haha/work/ws/my-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.209s
[INFO] Finished at: Fri May 24 08:42:57 CST 2013
[INFO] Final Memory: 15M/116M
[INFO] ------------------------------------------------------------------------

 

<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.hy</groupId>
  <artifactId>my-java</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-java</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

 

<project>      pom文件的顶级节点
<modelVersion>   object model版本,对Maven2和Maven3来说,只能是4.0.0 
<groupId>      项目创建组织的标识符,一般是域名的倒写
<artifactId>    定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<packaging>      打包的方式,有jar、war、ear等
<version>       当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
<name>        项目的名称
<url>        项目的地址
<dependencies>   构建项目依赖的jar
<description>    项目的描述

 

 二、编译程序

1)编译源程序,执行命令:mvn clean compile

[INFO] Compiling 1 source file to /home/haha/work/ws/my-java/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.488s
[INFO] Finished at: Fri May 24 08:54:24 CST 2013
[INFO] Final Memory: 15M/116M
[INFO] ------------------------------------------------------------------------

 2)测试,执行命令:mvc clean test

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.hy.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.04 sec

Results :

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

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.810s
[INFO] Finished at: Fri May 24 08:55:52 CST 2013
[INFO] Final Memory: 16M/117M
[INFO] ------------------------------------------------------------------------

 3)打包,执行命令:mvc clean package,执行打包命令前,会先执行编译和测试命令

[INFO] Building jar: /home/haha/work/ws/my-java/target/my-java-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.709s
[INFO] Finished at: Fri May 24 09:03:25 CST 2013
[INFO] Final Memory: 19M/117M
[INFO] ------------------------------------------------------------------------

 4)安装,执行命令:mvc clean install ,执行安装命令前,会先执行编译、测试、打包命令

[INFO] Installing /home/haha/work/ws/my-java/pom.xml to /home/haha/.m2/repository/com/hy/my-java/1.0-SNAPSHOT/my-java-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.877s
[INFO] Finished at: Fri May 24 09:05:30 CST 2013
[INFO] Final Memory: 22M/118M
[INFO] ------------------------------------------------------------------------

 5)运行jar包,执行命令:java -cp target/my-java-1.0-SNAPSHOT.jar com.hy.App

java -cp target/my-java-1.0-SNAPSHOT.jar com.hy.App
Hello World!

 6)编译成eclipse工程并导入,执行命令:mvn eclipse:eclipse

[INFO] Using Eclipse Workspace: /home/haha/work/ws
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "my-java" to /home/haha/work/ws/my-java.
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.461s
[INFO] Finished at: Fri May 24 09:15:34 CST 2013
[INFO] Final Memory: 14M/117M
[INFO] ------------------------------------------------------------------------

三、web项目搭建

1) 生成工程,执行:mvn archetype:generate -DgroupId=com.hy -DartifactId=my-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.hy
[INFO] Parameter: packageName, Value: com.hy
[INFO] Parameter: package, Value: com.hy
[INFO] Parameter: artifactId, Value: my-web
[INFO] Parameter: basedir, Value: /home/haha/work/ws
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /home/haha/work/ws/my-web
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34.159s
[INFO] Finished at: Sun May 26 22:25:49 CST 2013
[INFO] Final Memory: 13M/116M
[INFO] ------------------------------------------------------------------------

 2)打包,执行:mvn package

[INFO] Packaging webapp
[INFO] Assembling webapp [my-web] in [/home/haha/work/ws/my-web/target/my-web]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/haha/work/ws/my-web/src/main/webapp]
[INFO] Webapp assembled in [137 msecs]
[INFO] Building war: /home/haha/work/ws/my-web/target/my-web.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.123s
[INFO] Finished at: Sun May 26 22:31:05 CST 2013
[INFO] Final Memory: 14M/114M
[INFO] ------------------------------------------------------------------------

3)将生成的war包copy到服务器,如jetty的wapapps目录

4)使用maven的jetty插件,启动8080端口,访问web应用,执行,mvn jetty:run

<pluginManagement>
    <!--配置Jetty-->
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>   
        <artifactId>maven-jetty-plugin</artifactId>
      </plugin>
    </plugins>
</pluginManagement>

猜你喜欢

转载自mingren135.iteye.com/blog/1874456