java maven笔记

idea 开发平台

idea的配置参照:https://blog.csdn.net/qq_36698956/article/details/86571425

1、创建meavn项目

 

 1.1 archetype模板

新建Maven project项目时,需要选择archetype,archetype模板很多,一般大部分通用以下模板原型:

 

1、cocoon-22-archetype-webapp

包含了applicationContext.xml、log4j.xml、web.xml、pom.xml

2、maven-archetype-quickstart

除了pom.xml外,没有其他的xml了,但是有main、test两个包,包里放了一个App、AppTest类pom.xml

3、maven-archetype-webapp

有WEB-INF目录,并且有web.xml和一个index.jsp

具体如下:

maven提供的41个骨架原型分别是:

1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) 
2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型) 
3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型) 
4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型) 
5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型) 
6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型) 
7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型) 
8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型) 
9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型) 
10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序) 
11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade) 
12: maven-archetype-mojo(一个Maven的Java插件开发项目) 
13: maven-archetype-portlet(一个简单的portlet应用程序) 
14: maven-archetype-profiles() 
15:maven-archetype-quickstart() 
16: maven-archetype-site-simple(简单的网站生成项目) 
17: maven-archetype-site(更复杂的网站项目) 
18:maven-archetype-webapp(一个简单的Java Web应用程序) 
19: jini-service-archetype(Archetype for Jini service project creation) 
20: softeu-archetype-seam(JSF+Facelets+Seam Archetype) 
21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型) 
22: softeu-archetype-jsf(JSF+Facelets 原型) 
23: jpa-maven-archetype(JPA 应用程序) 
24: spring-osgi-bundle-archetype(Spring-OSGi 原型) 
25: confluence-plugin-archetype(Atlassian 聚合插件原型) 
26: jira-plugin-archetype(Atlassian JIRA 插件原型) 
27: maven-archetype-har(Hibernate 存档) 
28: maven-archetype-sar(JBoss 服务存档) 
29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目) 
30: scala-archetype-simple(一个简单的scala的项目) 
31: lift-archetype-blank(一个 blank/empty liftweb 项目) 
32: lift-archetype-basic(基本(liftweb)项目) 
33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/]) 
34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/]) 
35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/]) 
36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型) 
37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型) 
38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型) 
39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型) 
40: gmaven-archetype-basic(Groovy的基本原型) 
41: gmaven-archetype-mojo(Groovy mojo 原型)

1.2 GroupID和ArtifactID

  GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构

  ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupID就是填com.leafive.test这样子。

  GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。 
  GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。 
  比如我创建一个项目,我一般会将GroupId设置为cn.mht,cn表示域为中国,mht是我个人姓名缩写,ArtifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,在你创建Maven工程后,新建包的时候,包结构最好是cn.zr.testProj打头的,如果有个StudentDao[Dao层的],它的全路径就是cn.zr.testProj.dao.StudentDao

 

1.3 idea创建maven项目没有src和test文件夹的问题解决

要创建一个maven项目, 首先要在默认设置中修改VM options:-DarchetypeCatalog=internal

建议在启动idea 创建项目的时候去setting,这样保证全局,而非单个项目应用。

 

 

 

 

 将会出现:

 

1.3 .iml文件和.idea文件夹

使用IDEA创建一个maven工程,目录结构中会产生了两个不一样的东西——分别是 .iml文件和.idea文件夹。

iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息。

.Idea存放项目的配置信息,包括历史记录,版本控制信息等,可以不理会。

1.4 idea没法识别java文件,无法进行编译,idea文件左下角有个j的符号

 

 

解决方案如下:

1.打开idea左上方file
2.选择project Sturcture
3.在选择选择左侧树中的modules右侧点击source

找到带j符合的文件夹,进行选择后进行确认保存,在此启动项目就ok。

点击source 选中都文件夹会变色,表示已加载,看右边都Source Folders显示加载

 

 

打开IDEA 创建一个新的java项目(maven)后无法在里面的module中创建相应的java class文件

解决方案:

(1)选择 File——>Project Structure——>Project Settings——>Modules:也可以直接 【Project Structure】

 

 

  • Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包
  • Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
  • Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
  • 通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。

 (2)选择该项目的java存放的文件夹,将其设置为源文件,apply即可

1.4  项目启动

1.Add Configuration  -> add -> Application

 

 

 

填写 Name 和 Main class

 

 配置好后再启动。

 

IDEA创建main函数快捷方法

 

输入psvm 也就是public static void main的首字母 即可

 

System.out.println();快捷方法

就是sout

posted @ 2019-12-28 09:22  归去如风  阅读(227)  评论(0编辑  收藏  举报