创建并构建一个简单的maven项目_worldchinalee的博客-程序员宅基地

技术标签: 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!

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/worldchinalee/article/details/84550435

智能推荐

S3C2440A的ADC和触摸屏接口_马中马的博客-程序员宅基地

原文地址:http://blog.sina.com.cn/s/blog_56dee71a0100dw9k.htmlS3C2440A内置一个带8个模拟输入通道的10位逐次逼近型(recycling type)CMOS模数转换器。在2.5MHz的模数转换时钟频率下,转换速率可达到500KSPS(Kilo Samples Per Second),并且支持片内采样保持功能和省电模式。S3C2440

java的excelreader_读取Excel文件ReaderExcel (用到FileUtil.java)(JXL方式读取excel) | 学步园..._盐于律己鸭的博客-程序员宅基地

import com.hao.util.FileUtil;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import jxl.Cell;import jxl.Sheet;import jxl.Work...

信息安全期末复习知识整理之选择、填空、判断题(上篇)_艳Yansky的博客-程序员宅基地

这里整理了信息安全技术的知识供自己复习也希望对大家有所帮助~一、选择、填空、判断1.1 计算机安全与技术研究的内容①计算机外部安全②计算机信息在存储介质上的安全③计算机信息在传输过程中的安全,即计算机网络安全1.2 影响计算机安全的因素①自然环境 ②人为失误 ③人为恶意破坏 ④软件设计不完善2.1 代替密码代替密码也称“替换密码”,其是按一...

linux服务网卡速率查看,查看linux系统网卡工作模式、速率等_挖数的博客-程序员宅基地

有时候,我们需要看下linux系统网卡工作模式、速率等,比较常用到的命令是mii-tool、ethtool,下面简单看下即可。查看下eth0网卡信息[[email protected] ~]# mii-tool -v eth0eth0: negotiated 100baseTx-FD flow-control, link okproduct info: vendor 00:00:20, model 32 rev...

[10月1日的脚本] 移除Windows8应用商店中的应用程序_MSScriptSample的博客-程序员宅基地

脚本下载: RemoveWindowsStoreApp.ziphttp://gallery.technet.microsoft.com/scriptcenter/Remove-Windows-Store-Apps-a00ef4a4 本脚本可以用来移除Windows8用户账户的多个Windows应用商店应用程序。它提供了已安装的Windows应用商店应用程序的列表。您可以指定欲移除的

远程文件包含2_Beluga的博客-程序员宅基地

开启kali的apache服务返回到网站去page=http://KALI IP ,确认远程包含文件存在准备传入木马生成文件1.txt然后使用kali去访问1.txt,返回结果为成功即可验证是否存在木马文件,返回无结果即为成功使用菜刀连接一句话木马文件打开右击记录,打开虚拟终端,输入ifconfig...

随便推点

AudioToolbox_如何录制PCM格式的数据_深渊云海的博客-程序员宅基地

让学习成为一种习惯先来认识一下头文件AudioConverter.h: 音频转换接口。定义用于创建和使用音频转换器的接口AudioFile.h: 定义一个用于读取和写入文件中的音频数据的接口。AudioFileStream.h: 定义了一个用于解析音频文件流的接口。AudioFormat.h: 定义用于分配和读取音频文件中的音频格式元数...

亚马逊CEO贝索斯:伟大的人生只与选择有关,与天赋、贫富无关_嵌入式资讯精选的博客-程序员宅基地

亚马逊创始人兼CEO贝索斯曾在其母校普林斯顿大学的演讲被视为经典之作,被列为商界100篇经典演讲,激励了无数人。以下是演讲全文:01  善良比聪明更难在我还是一个孩子的时候,我的夏天总是在德州祖父母的农场中度过。我帮忙修理风车,为牛接种疫苗,也做其它家务。每天下午,我们都会看肥皂剧,尤其是《我们的岁月》。我的祖父母参加了一个房车俱乐部,那是一群驾驶Airstream拖挂型房车的人们,他们结伴遍游美

Zookeeper之功能篇章_菜鸟编程98K的博客-程序员宅基地

文章目录一、集群角色二、数据模型1、持久节点(PERSISTENT)2、持久有序节点(PERSISTENT_SEQUENTIAL)3、临时节点(EPHEMERAL)4、临时有序节点(EPHEMERAL)三、会话四、Stat状态信息五、版本六、Watcher七、ACL1、特点2、ACL Permissions3、ACL Schemes 、ID4、权限相关命令5、zkCli操作示例a、wordb、ip...

串口硬盘如何应用于并口硬盘计算机,串口硬盘和并口硬盘的区别 并口硬盘怎么改串口硬盘【详解】..._带笑子的博客-程序员宅基地

摘要:串口硬盘和并口硬盘的区别?并口硬盘怎么改串口硬盘?一说到并口硬盘改串口硬盘,我想,对于不常接触电脑的人们来说肯定是一头雾水,那么,今天就和小编一起去探索探索吧!要想了解并口硬盘改串口硬盘,毋容置疑,首先我们得了解一下并口硬盘和串口硬盘的区别。接下来,我们就一起去看看吧!【并口硬盘盒】串口硬盘和并口硬盘的区别 并口硬盘怎么改串口硬盘串口硬盘和并口硬盘的区别随着技术的成熟,越来越多的主板和 硬盘...

推荐文章

热门文章

相关标签