[Maven实战](5)Archetype生成项目骨架

Hello World项目中有一些Maven的约定:在项目根目录中放置pom.xml,在src/main/java目录下放置项目的主代码,在sc/test/java中放置项目的测试代码。之所以一步一步的展示这些步骤,就是为了让我们这些菜鸟得到最真实的感受。我们称这些基本的目录结构和pom.xml文件内容为项目的骨架。
如下就是我们项目的目录结构骨架:
1.png

但是我们不希望每次创建项目时,都是手动一个一个的创建我们的目录结构,重复这些没有什么意义的事情。为此Maven提供了Archetype来帮助我们快速的勾勒出项目骨架。

我们还是以Hello World项目为例进行说明:

如果是Maven3,简单的运行:
   
   
mvn archetype:generate
如果是Maven2,最好运行如下命令:
   
   
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate
在Maven2中直接使用mvn archetype:generate命令是不安全的,因为该命令没有指定Archetype插件的版本,于是Maven会自动下载最新的版本,进而可能得到不稳定的SNAPSHOT版本,导致运行失败。然而在Maven3中,即使用户没有指定版本,Maven也会只解析最新的稳定版本,因此是安全的。

首次运行时,mvn会从远程"中央仓库"下载一些必需的文件到"本地仓库"(C:\Users\当前用户名\.m2\repository)

2.png
下载完成后,会自动进入 交互模式,会让你输入一些基本信息,类似下面这样:

4.png
[INFO] Generating project in Interactive mode 
因为要联网获取项目模板,在这要等待一段时间,莫要着急。

5.png
这里会自动列出很多项目模板,每种模板前面会有一个数字序号,直接回车。721, 根据每个人机器上安装的eclipse插件不同,可能默认的数字不同。
6.png
7.png

Archetype插件将根据我们提供的信息创建项目骨架。在当前目录下,Archetype插件会创建一个名为mavendemo-hello-world(我们定义的artifactId)的子目录,从中可以看到项目的基本结构:基本的pom.xml已经被创建,里面包含了必要的信息以及一个junit依赖;主代码目录src/main/java已经被创建,在该目录下还有一个Java类,注意这里使用到了刚才定义的包名,而这个类也仅仅只有一个简单的输出Hello World!的main方法;测试代码目录src/test/java也被创建好了,并且包含了一个测试用例。
   
   
package com.sjf.model;
 
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}

   
   
package com.sjf.model;
 
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
 
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
 
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
 
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}

项目结构:
8.png

Archetype:generate还有一种方式,一次性设置全部属性:
   
   
mvn archetype:generate -DgroupId=com.sjf.mavendemo -DartifactId=mavendemo-hello-world -Dversion=1.0.0SANPSHOT -Dpackage=com.sjf.model


来源于:《maven实战》


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@SmartSi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值