maven-create simple project详解

文章转自  -->https://my.oschina.net/selfdesign/blog/538962

文章主要解析创建maven项目时,各个选项的意义。

 

打开Eclipse->File->New->Ohter(如图1新建maven)或者按Ctrl+N的热键进入新建选项,

image图1 新建maven

找到Maven文件夹或者在Wizards输入Maven会出现(如图2选择新建MavenProject),选中Maven Project 点next,

image图2 选择新建MavenProject

看到(如图3:创建一个新的Maven project)有3个选项,分别是

Create a simple project (skip archetype selection) :创建一个简单的项目(跳过对原型模板的选择)[默认勾选]

User default Workspace location:使用本地默认的工作空间

--Loaction:本地工作空间目录

Add project(s) to working set :增加项目到工作集

image图3  创建一个新的Maven project

如果要按照自己的想法创建项目的话,可以选择第1个,第二个的话是根据Maven设置中Archetypes来选择对应的原型模板,第三个是可以把把其他项目引入到当前工作目录(没有限制是否是maven项目).

Advanced(高级)(如图4:新建Maven项目高级选项):

image  图4 新建Maven项目高级选项

该选项正如上面的意思所说解决工作空间中的项目 Profiles(由于我项目中没有用到该高级属性,暂时只能大概猜测一下其功能,如果谁知道的话麻烦留言谢谢)大概跟setting中的标签对应,而Name template对应的是Eclipse中所创建Maven2项目的名称,也就是你那个项目的groupId,artifcatId那个.

把第二个勾去掉,这里首先带大家创建一个项目,勾选第一个,然后按next,会出现(如图5:简单项目)

image图5 简单项目

Artifact(神器?)

-------Group Id:组Id,针对一个项目的普遍唯一识别符。相当于我们日常使用的包名,例如:org.lxh

-------Artifact Id:要新建的项目的名字

-------Version:版本号,默认0.0.1-SNAPSHOT

-------Packing:要将该项目生成什么类型,有jar,war,ejb,ear,rar,pom,maven-plugin,maven-archetype,osgi-bundle,eclipse-plugin

-------Name:名字(估计是模板的名字)

-------Description:说明

Parent Project(父项目)以之前的项目作为基础新建项目,点Browse出现(如图6:选择项目),可以以原有的项目作为基础新建,必须为Jar或者pom才行

image图6选择项目

Advanced(高级)[如图7:simple project 的高级选项]高级选项同新建maven project时候刚开始的功能是一样的,所以就不多叙述了

如图7simple project 的高级选项

输入(如图8:开始创建Maven Project)信息后出现(如图9:添加依赖项目),点击Add出现(如图10:输入依赖项目名称)输入相应你需要的Jar包,例如org.springframework,maven会根据你所输入的Group Id或者Artifact Id优先搜寻默认的远程中央仓库(http://repo1.maven.org/maven2)

图8开始创建Maven Project         

image图9 添加依赖项目

image图10 输入依赖项目名称               

 

 

 

 

 

 

选择相应的依赖项目,会最先显示目前最新版本,或者你可以单击选择其他版本(如图11:选择其他版本依赖项目),选中后(如图12:选中项目后的列表),最后按finish然后,maven会从远处服务器中讲所选的依赖项目下载到本地仓库中.

image如图11 选择其他版本依赖项目

image

如图12 选中项目后的列表

最后生成的项目(如图13:生成后的maven项目)分别有以下几个目录

image图13 生成后的maven项目

src/main/java:主要编码的目录

src/main/resource:资源目录.如:spring的xml.Java配置properties

src/test/java:测试的代码

src/test/resource:测试的资源.如:spring的xml.Java配置properties

JRE System Library:Java运行环境,默认JavaSE1.4,需要修改,如果要统一更改的话请更改setting.xml中的文件,

setting.xml如下(详细请参考文章---修改Maven项目的编译级别[http://gzyangfan.spaces.live.com/blog/cns!6AC933E7557ED503!471.entry]):

<profile>
        <id>jdk-1.6</id>
        <activation>
          <activeByDefault>true</activeByDefault>
            <jdk>1.6</jdk>
       </activation>
        <properties>
           <maven.compiler.source>1.6</maven.compiler.source>
            <maven.compiler.target>1.6</maven.compiler.target>
           <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>
       </properties>
  </profile>

 

Maven Dependencies:Maven的依赖项目,包括该项目下的依赖包

src:对应src/main/java与src/test/java的class文件夹.

target:目标文件生成,例如要将项目生成jar就会生成到这个目录下

pom.xml:maven项目的配置文件.

对于pom.xml其标签说明如下:

1. parent 给出父项目的位置,如果存在上一级父项目的话。如果没有特别指出的话,值就是父项目对于当前项目而言。位置是一个 as a group ID, artifact ID 和version元素的组合。
2.modelVersion 描述这个POM文件遵从哪个版本的项目描述符.
3.groupId 针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与其他项目的类似名字来进行区分(比如:org.apache.maven)
4.artifactId 在给定groupID 的group里面为artifact 指定的标识符是唯一的 artifact 代表的是被制作或者被一个project应用的组件。对于Maven项目的artifact 的例子包括:一些JARs, 原代码以及二进制的发布以及WARs.
5.packaging 这个项目生产出来的artifact 类型,举个例子 jar war pom Plugins 能够创建他们自己的包,包括包的类型,所以这个列表不可能包含所有可能的类型
6.name 当前项目的全称
7.version 当前项目产生的artifact的当前版本
8.description 当前项目的一个细节描述,当需要描述这个项目的时候被Maven所用,比如在web 站点中。 这个元素能够被指定为CDATA 类型,允许在描述器中HTML的tags, 并不鼓励用空白文本来表示。 如果你需要去修改生成的web 站点的索引页,你能够用你自己的索引来代替自动生成的文本。
9.url 当前项目的主页的URL
10.prerequisites 描述当前项目的编译环境的先决条件
11.issueManagement 当前项目的发布管理信息。
12.ciManagement 当前项目的连续集成信息。
13.inceptionYear 当前项目开始的年份, 用4位数字描述. 涉及到介绍情况时用作提供版权信息
14.mailingLists 包含的信息包括邮件列表
15.developers 描述当前的项目的开发人员的信息
16.contributors 描述对当前项目有贡献的人员的信息,不特指开发人员
17.licenses 这个元素描述了当前项目的所有的许可文件。每一个许可文件用一个许可元素来描述,然后描述额外的元素. 通常只列出适用于这个项目的许可文件以及适用于 依赖的非licenses。如果多个licenses都列出来了,那么假设这个用户选择其中的所需的,而不是接受所有的许可文件。
18.scm 指定当前项目中的版本控制工具,比如CVS, Subversion, 等等。
19.organization 这个元素描述这个项目所属组织的各种属性的描述。这些属性应用于文档创建的时候 (版权通知和链接).
20.build 创建项目时必须的信息。
21.profiles 本地项目编译档案文件时的列表,被激活时会修改build的过程
22.modules 模块 (有时被叫做子项目)作为当前项目的一部分.每一个被列出来的子模块都指向包含这个模块的目录文件的相对路径
23.repositories 发现依赖和扩展的远程资源库
24.pluginRepositories 发现plugins 的远程资源库的列表,主要是为了编译和报告
25.dependencies 这个元素描述了所有与当前项目相关的依赖.这些依赖被用作创建一个编译时的路径. 他们被自动的从资源库中下在下来依据当前项目的定义。如需更多信息,参看 the dependency mechanism
26.reports Deprecated.禁止适用。现在的版本中被 Maven所忽略掉。
27.reporting 这个元素包括报告的plugins 的指定,用作Maven生成站点的自动生成报告.这些报告将会运行当用户执行mvn site. 所有的报告将会包括在浏览器的导航栏中。
28.dependencyManagement 缺省的依赖信息将会从这个元素中继承。这些依赖在这一部分中被不立刻被解决的。当一个源于这个POM的元素描述了一个依赖根据匹配的 groupId 和artifactId,这个部分的版本和其他值用作那些还没有指定的依赖。
29.distributionManagement 对于一个项目分配的信息允许对于远程web服务器和资源库的site和artifacts配置。
30.properties 属性可以作为POM的自始自终的替换物,如果可行的话可以用作resources 的过滤器,格式是value

posted on 2021-11-04 20:03  王飞侠  阅读(471)  评论(0编辑  收藏  举报

导航