Maven命令与pom文件常量

  1. 云栖社区>
  2. 博客>
  3. 正文

Maven命令与pom文件常量

技术小阿哥 2017-11-27 10:33:00 浏览1504
展开阅读全文

Maven不单止可以在Eclipse上使用,也可以在cmd中使用命令的方式操作,虽然这样十分麻烦,而且有一般也不会使用,但是还是得了解一些可能会用到的操作方式。

1.mvn compile命令:此命令用于编译工程,使用此命令在cmd里编译工程代码时,需要先cd进工程目录下,不然会报错。

使用命令编译工程的话,工程文件夹可以自己手动创建,这个手动创建的样式和用Eclipse创建的样式差不多,工程文件夹下是maintest文件夹还有pom配置文件,这个pom文件里的信息必须要配置对,基本Maven都是围绕着这个文件进行识别的,maintest文件里就是工程代码和测试代码,例如我创建一个MavenTest2的工程:

2b250701f6b5bd97f435d5374a4a915c.png


根据规定创建好工程后开始进行编译:

dbe0f870305caf126037e6e50b465cf5.png

以上是编译成功反馈的信息


编译的代码:

8c6cf1f9d7fc489b22b72ec42db33f8a.png



2.mvn test-compile命令:此命令用于测试编译中的工程代码,测试的话需要依赖JUnit包,所以也要配置一下pom文件,将依赖写上去,这个包的依赖可以在中央类库中找到,然后还需要创建src文件夹然后将maintest文件夹放进去:

467145c6c3063ba4afa85fdbabcad7ac.png

53c1a54c6e928029885b6e499af978e9.png

注意:测试编译前需要先运行mvn compile命令将依赖的JUnit包下载下来,不然会报错:

f34073ace9d6d94fb28d38e628733563.png


然后再运行mvn test-compile命令:

00fbdcf2795951d989629f7275975d34.png


测试编译的代码:

e3addd3319ca6c940f4aa0860b140fb0.png




3.mvn test命令:此命令用于调用测试并编译工程代码

09ac6c1f497fbf736d8db91881012398.png

代码测试主要是测试、验证代码的逻辑结果是否有问题,如果没问题才能将工程发布出去。

 



4.mvn package 命令:此命令将工程打包,打包的时候会进行一个测试:

1cfe3a3d1be8b4848860d70b7d14dd20.png


打好的包会放在这个文件夹下:

55b0b33abc631a53d30393102766ec1a.png



5.mvn jar:jar 命令:此命令只打JAR包,同样的打好的jar包会放在target文件夹里:

47fef499ebf7a569112ee8bc5faf1d2e.png



6.mvn clean 命令:此命令用于清理工程文件

cc20cddb2130a9797c4f50421b1b3437.png




7.mvn archetype:generate命令:此命令是使用Maven的模板骨架创建一个工程,使用此命令需要先创建一个工程文件夹,然后cd进那个文件夹才能执行这个命令。使用这个命令创建工程的话需要下载相应的包,所以需要等待一下:

 

然后会询问你选择一个数字或应用过滤器输入1即可:

7a635fce314edbd3f506add10f1aeeae.png



接着就是输入工程相关信息:

b02e7d4694b6873cad6913d377c8a88f.png


创建成功:

ad1cd8ff13af1e91a5bcc4cffface0a9.png


上面创建的是一个网页工程,我们需要创建javase工程的话就要在选择数字那一步输入15,这个数字代表的是javase工程骨架:

6a196f52f8383e4a77ced777e50011ba.png

fa122b6d8fa0fd1d64472d5e42caba1d.png


同样的需要输入这段信息:

5263b9014fb3f3e03275f0dbd07cfca8.png


创建成功:

dd7d64b63ecb35292732af4ce7077cd5.png

2b9c883c7eec0620c52e1390cf042812.png




工程骨架自带的工程代码:

efbafa8bb0a3bb7d44c9a771bed1bb29.png




以下都是Maven中工程骨架的编号:

1: internal -> appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)

2: internal -> appfuse-basic-spring (创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)

3: internal -> appfuse-basic-struts (创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型)

4: internal -> appfuse-basic-tapestry (创建一个基于Hibernate, Spring 和 Tapestry 4的Web应用程序的原型)

5: internal -> appfuse-core (创建一个基于 Hibernate and Spring 和 XFire的jar应用程序的原型)

6: internal -> appfuse-modular-jsf (创建一个基于 Hibernate,Spring和JSF的模块化应用原型)

7: internal -> appfuse-modular-spring (创建一个基于 Hibernate, Spring 和 Spring MVC 的模块化应用原型)

8: internal -> appfuse-modular-struts (创建一个基于 Hibernate, Spring 和 Struts 2 的模块化应用原型)

9: internal -> appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型)

10: internal -> maven-archetype-j2ee-simple (一个简单的J2EE的Java应用程序)

11: internal -> maven-archetype-marmalade-mojo (一个Maven的 插件开发项目 using marmalade)

12: internal -> maven-archetype-mojo (一个Maven的Java插件开发项目)

13: internal -> maven-archetype-portlet (一个简单的portlet应用程序)

14: internal -> maven-archetype-profiles ()

15: internal -> maven-archetype-quickstart ()

16: internal -> maven-archetype-site-simple (简单的网站生成项目)

17: internal -> maven-archetype-site (更复杂的网站项目)

18: internal -> maven-archetype-webapp (一个简单的Java Web应用程序)

19: internal -> jini-service-archetype (Archetype for Jini service project creation)

20: internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)

21: internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (无残留) 原型)

22: internal -> softeu-archetype-jsf (JSF+Facelets 原型)

23: internal -> jpa-maven-archetype (JPA 应用程序)

24: internal -> spring-osgi-bundle-archetype (Spring-OSGi 原型)

25: internal -> confluence-plugin-archetype (Atlassian 聚合插件原型)

26: internal -> jira-plugin-archetype (Atlassian JIRA 插件原型)

27: internal -> maven-archetype-har (Hibernate 存档)

28: internal -> maven-archetype-sar (JBoss 服务存档)

29: internal -> wicket-archetype-quickstart (一个简单的Apache Wicket的项目)

30: internal -> scala-archetype-simple (一个简单的scala的项目)

31: internal -> lift-archetype-blank (一个 blank/empty liftweb 项目)

32: internal -> lift-archetype-basic (基本(liftweb)项目)

33: internal -> cocoon-22-archetype-block-plain ([http://cocoapacorg2/maven-plugins/])

34: internal -> cocoon-22-archetype-block ([http://cocoapacorg2/maven-plugins/])

35: internal -> cocoon-22-archetype-webapp ([http://cocoapacorg2/maven-plugins/])

36: internal -> myfaces-archetype-helloworld (使用MyFaces的一个简单的原型)

37: internal -> myfaces-archetype-helloworld-facelets (一个使用MyFaces和Facelets的简单原型)

38: internal -> myfaces-archetype-trinidad (一个使用MyFaces和Trinidad的简单原型)

39: internal -> myfaces-archetype-jsfcomponents (一种使用MyFaces创建定制JSF组件的简单的原型)

40: internal -> gmaven-archetype-basic (Groovy的基本原型)

41: internal -> gmaven-archetype-mojo (Groovy mojo 原型)

 

所以输入什么编号就会创建相应的工程骨架。

    如果需要创建最简单的java工程,需要写具体的骨架名称,所以选择骨架的那一步既可以使用编号也可以使用骨架的名称,我发现用编号的方式选择骨架创建不了简单的java工程,得用骨架的名称:

e8c3c9aa4d6f4ecb2ba4b19889ad83b0.png


创建成功:

ba908dcf6a9d730cbef04b052abcf3e2.png

86dbdd8948418556406795e3ddeb33f8.png



工程骨架自带的工程代码:

20fea7f78c58a5fe2092c795a23da5ac.png




创建完后就可以使用mvn compile进行编译了,当然其他的测试什么的命令也可以使用了:

a0aba336b840af1c2678d7bf48701507.png



8.mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart命令:此命令用于选择创建普通java工程的骨架,能够跳过之前那些选项直接创建此骨架的工程。

3c89fda5eb53a0f49640d92d53a65fa1.png


创建成功:

cde6c6592de3e17bf5f85ee602e5fc5e.png

ba89f36c239290d9be14b4356a6b37a5.png

abb97f4624f4d44ccf8e8e94d70e622b.png

7247519f9066827d0924cc42af123ecf.png



Eclipse里选择普通java工程的骨架进行创建工程:

9e6a903e3e63d98dbf129c83693b73b2.png

dc420325e729b5b30e9c0b0ce170ad86.png

378c85b1152d7a133d07d87a911a7420.png

6bc21db7e570774ce05473c6c2ea84b0.png



创建完成:

b7c531d3ca884b36ec9872de15c533df.png


9d241c6970d69c7930d4c47da843bd80.png




pom文件:

  在Eclipse打开pom配置文件,首先进入的是修改工程信息的界面,这个界面可以修改工程的信息

53add3be69c901ee879245a74ac05c9e.png



59cb36ece316009cc89d74ce4465bd25.png



014b5bb915cb8c0c8751310a81f6375d.png



b3ca90259f61aaab34593da2eecb6548.png





本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1976987,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注