创建并构建一个简单的maven项目

创建一个简单的项目

开始一个新的Maven项目,在命令行使用Maven Archetype插件。
 

D:\data\src>mvn archetype:generate -DgroupId=com.lwq.www -DartifactId=simple -Dc
om.lwq.www
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > generate-source
s @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < generate-source
s @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ standalone-pom
---
[INFO] Generating project in Interactive mode
[WARNING] No archetype found in remote catalog. Defaulting to internal catalog
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.
archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archety
pe which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An arche
type which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype
which contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An arche
type which contains a sample Maven plugin site.
      This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype
 which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archet
ype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype wh
ich contains a sample Maven site which demonstrates
      some of the supported document types like APT, XDoc, and FML and demonstra
tes how
      to i18n your site. This archetype can be layered upon an existing Maven pr
oject.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An arche
type which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype
 which contains a sample Maven Webapp project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive co
ntains): 7:
[INFO] Using property: groupId = com.lwq.www
[INFO] Using property: artifactId = simple
Define value for property 'version' 1.0-SNAPSHOT: :
[INFO] Using property: package = com.lwq.www
Confirm properties configuration:
groupId: com.lwq.www
artifactId: simple
version: 1.0-SNAPSHOT
package: com.lwq.www
 Y: : Y
[INFO] -------------------------------------------------------------------------
---
[INFO] Using following parameters for creating project from Old (1.x) Archetype:
 maven-archetype-quickstart:1.1
[INFO] -------------------------------------------------------------------------
---
[INFO] Parameter: basedir, Value: D:\data\src
[INFO] Parameter: package, Value: com.lwq.www
[INFO] Parameter: groupId, Value: com.lwq.www
[INFO] Parameter: artifactId, Value: simple
[INFO] Parameter: packageName, Value: com.lwq.www
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: D:\data\src\simple
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.928 s
[INFO] Finished at: 2018-11-26T16:41:09+08:00
[INFO] Final Memory: 14M/196M
[INFO] -----------------------------------------------------------------------

mvn 是Maven2的命令。archetype:generate称为一个Maven目标 (goal)。描述了将会在构建中完成的工作单元 (unit of work)。而像-Dname=value这样的对是将会被传到目标中的参数,它们使用-D属性这样的形式1,类似于你通过命令行向Java虚拟机传递系统属性。archetype:generate这个目标的目的通过archetype快速创建一个项目。在这里,一个archetype被定义为“一个原始的模型或者类型,在它之后其它类似的东西与之匹配;一个原型(prototype)”。Maven有许多可用的archetype,从生成一个简单的Swing应用,到一个复杂的Web应用。本章我们用最基本的archetype来创建一个入门项目的骨架。这个插件的前缀是“archetype”,目标为”generate”。

们已经生成了一个项目,看一下Maven在simple目录下创建的目录结构:
 

simple/❶
simple/pom.xml❷
    /src/
    /src/main/❸
        /main/java
    /src/test/❹
        /test/java

这个生成的目录遵循Maven标准目录布局,我们之后会去看更多的细节,但是,现在让
我们只是尝试了解这些基本的目录。
❶ Maven Archtype插件创建了一个与artifactId匹配的目录——simple。这是项目的
基础目录。
❷ 每个项目在文件pom.xml里有它的项目对象模型 (POM)。这个文件描述了这个项
目,配置了插件,声明了依赖。
❸ 我们项目的源码了资源文件被放在了src/main目录下面。在我们简单Java项目这
样的情况下,这个目录包含了一下java类和一些配置文件。在其它的项目中,它
可能是web应用的文档根目录,或者还放一些应用服务器的配置文件。在一个Java
项目中,Java类放在src/main/java下面,而classpath资源文件放在src/main/
resources下面。
❹ 我们项目的测试用例放在src/test下。在这个目录下面,src/test/java存放像
使用JUnit或者TestNG这样的Java测试类。目录src/test/resources下存放测试
classpath资源文件。

Maven Archtype插件生成了一个简单的类com.lwq.www.App,它是一个仅有
13行代码的Java,所做的只是在main方法中输出一行消息:
 

package com.lwq.www;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

构建一个简单的项目

 

创建一个简单的项目” 使用Maven Archetype插件创建了一个项目,你会希望构建并打包这个应用。想要构建打包这个应用,在包含pom.xml的目录下运行mvn install。

D:\data\src\simple>mvn install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building simple 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ simple ---

[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\data\src\simple\src\main\resources

[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ simple ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\data\src\simple\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ si
mple ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\data\src\simple\src\test\resources

[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ simple
---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\data\src\simple\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ simple ---
[INFO] Surefire report directory: D:\data\src\simple\target\surefire-reports

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

Results :

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

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ simple ---
[INFO] Building jar: D:\data\src\simple\target\simple-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ simple ---
[INFO] Installing D:\data\src\simple\target\simple-1.0-SNAPSHOT.jar to C:\Users\
liwenqing\.m2\repository\com\lwq\www\simple\1.0-SNAPSHOT\simple-1.0-SNAPSHOT.jar

[INFO] Installing D:\data\src\simple\pom.xml to C:\Users\liwenqing\.m2\repositor
y\com\lwq\www\simple\1.0-SNAPSHOT\simple-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.136 s
[INFO] Finished at: 2018-11-26T16:48:41+08:00
[INFO] Final Memory: 17M/213M
[INFO] ------------------------------------------------------------------------

你已经创建了,编译了,测试了,打包了,并且安装了(installed)最简单的Maven项目。在命令行运行它以向你自己验证这个程序能工作。
 

$ java -cp target/simple-1.0-SNAPSHOT.jar org.sonatype.mavenbook.App
Hello World!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值