普通java项目 maven项目_如何用Maven创建一个普通Java项目

一下内容包括:用Maven创建一个普通Java项目,并把该项目转成IDEA项目,导入到IDEA,最后把这个项目打包成一个jar文件。

有时候运行mvn命令失败,重复运行几次就OK了,无解(可能因为网络问题,一些文件没下载到,搭建私服后就不会了)。

1、用Maven模板创建一个项目

打开控制台,进入到想要创建项目的目录,然后运行如下命令,参数自由填写:

1 mvn archetype:generate -DgroupId={project-packaging}2 -DartifactId={project-name}3 -DarchetypeArtifactId=maven-archetype-quickstart4 -DinteractiveMode=false

参数说明:

1.1、-DgroupId:包名,如:com.google

1.2、-DartifactId: 项目名称,如:NumberGenerator

1.3、-DarchetypeArtifactId: 项目的类型,Maven提供了很多模板,如果你没写这个,创建的时候就会列出一大堆模板让你选择

1.4、-DinteractiveMode: 是否使用交互模式,如果是true,那么在创建过程中就要手动输入一些参数

一个实际例子:

1 mvn archetype:generate -DgroupId=com.mkyong -DartifactId=NumberGenerator2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在上面的例子中,Maven会创建一个名为"NumberGenerator"的项目,并把项目的目录结构自动创建好,如果你的命令执行失败了,那就手动创建吧。

2、项目结构

使用mvn archetype:generate + maven-archetype-quickstart模板创建出来的项目结构如下:

1 NumberGenerator2 |-src3 |---main4 |-----java5 |-------com6 |---------mkyong7 |-----------App.java8 |---test9 |-----java10 |-------com11 |---------mkyong12 |-----------AppTest.java13 |-pom.xml

所有源代码放在/src/main/java/目录里,所有测试代码放在/src/test/java/目录里。

除此之外还会生成一个标准的pom.xml文件,里面描述了整个项目的信息,所有信息都是从目录结构里来的,包括项目插件、依赖关系以及如何编译项目等等,里面内容如下,具体查看official POM guide.。

1

2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.04 http://maven.apache.org/maven-v4_0_0.xsd">

5 4.0.0

6 com.mkyong

7 NumberGenerator

8 jar

9 1.0-SNAPSHOT

10 NumberGenerator

11 http://maven.apache.org

12

13

14 junit

15 junit

16 3.8.1

17 test

18

19

20

3、IDEA IDE

要把这个项目转成IDEA项目,要进入到"NumberGenerator"目录,然后运行如下命令,Maven将会生成IEAD所需的所有文件:

1 mvn idea:idea -DjdkName=1.7

此处的JDK版本一定要写,我没写时运行就出错了(可能因为网络问题,一些文件没下载到,搭建私服后就不会了)。JDK版本可通过运行 java -version 获得。mvn idea:idea 命令详解:http://maven.apache.org/plugins/maven-idea-plugin/usage.html。

导入后如下图所示:

2a650909a8db9631b4c6b06d8fadbec0.png

4、更新pom.xml文件

默认的pom.xml文件太简单了,大多数时候你需要添加编译插件,告诉Maven用哪个JDK版本来编译你的项目(默认是1.4,太旧了)。

1

2 org.apache.maven.plugins

3 maven-compiler-plugin

4 2.3.2

5

6

7 1.7

8 1.7

9

10

把jUnit升级到4.11版本:

1

2 junit

3 junit

4 4.11

5 test

6

上面的代码片段叫做"Maven Coordinate",你需要自己到Maven中心仓库查找所需的"Maven Coordinate"。

完整的pom.xml:

1

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

3 4.0.0

4 com.yanyd

5 NumberGenerator

6 jar

7 1.0-SNAPSHOT

8 NumberGenerator

9 http://maven.apache.org

10

11

12 junit

13 junit

14 4.11

15 test

16

17

18

19

20

21 org.apache.maven.plugins

22 maven-compiler-plugin

23 2.3.2

24

25

26 1.7

27 1.7

28

29

30

31

32

在命令行再次输入命令:mvn idea:idea -DjdkName=1.7,Maven将会自动下载编译插件并自动升级jUnit的版本,并把依赖包放到本地仓库里。

5、更新业务逻辑

根据驱动测试开发(TDD),先修改单元测试案例,首先要确保App对象有一个方法能够生成一个独一无二的36位字符串。

App.java:

1 packagecom.yanyd;2

3 importjava.util.UUID;4

5 /**

6 * Generate a unique number7 *8 */

9 public classApp10 {11

12 public static voidmain( String[] args )13 {14 App obj = newApp();15 System.out.println("Unique ID : " +obj.generateUniqueKey());16 }17

18 publicString generateUniqueKey(){19

20 String id =UUID.randomUUID().toString();21 returnid;22

23 }24 }

TestApp.java:

1 packagecom.yanyd;2

3 importorg.junit.Assert;4 importorg.junit.Test;5

6 public classAppTest {7

8 @Test9 public voidtestLengthOfTheUniqueKey() {10

11 App obj = newApp();12 Assert.assertEquals(36, obj.generateUniqueKey().length());13

14 }15 }

6、使用Maven打包

现在我们使用Maven编译项目并打包成一个jar文件,打包成什么格式的文件,是通过pom.xml里的packaging标签定义的。

在控制台里输入打包命令:mvn package,Maven就会开始编译项目,运行里面的单元测试,通过测试后就会把项目打包成一个jar文件放在project/target目录里。

由于target目录不会显示在IntelliJ IDEA 里,所以只能到文件浏览器里查看了,最终的项目目录结构如下:

a8acb8bf2cea3516085e62b6813df85a.png 

748c18a442b580d1810493da9e5ced9b.png

7、运行项目

通过jar文件来运行这个App例子,在控制台输入如下命令,即可运行程序:

1 D:\IntelliJ\maven-project\NumberGenerator>java -cp target/NumberGenerator-1.0-SNAPSHOT.jar com.yanyd.App2 Unique Id:47193d77-ec6f-4e95-aa94-337592f6824d3

4 D:\IntelliJ\maven-project\NumberGenerator>java -cp target/NumberGenerator-1.0-SNAPSHOT.jar com.yanyd.App5 Unique Id:b6c85811-e81f-4a50-82b8-afbc59bbf2656

7 D:\IntelliJ\maven-project\NumberGenerator>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值