文档章节

使用Eclipse-Maven-git做Java开发(9)--eclipse新建maven结构工程

阿信sxq
 阿信sxq
发布于 2015/11/04 23:06
字数 1702
阅读 637
收藏 7

        上一篇博客讲了如何使用eclipse的maven工程新建向导新建maven工程,但是发现新建出来的工程并不可用,经过探索,使用eclipse的普通向导新建符合maven结构的工程并且转换为maven工程,这个方法的可操作性强得多,下面我就来演示一下如何操作。

0、准备

        老样子,eclipse要是正常工作的。

1、目标

        先来一个符合maven项目结构要求的目录结构,好明确知道我们的目标是什么,先来一个JavaSE的:

        然后是Java web的:

        红线划掉的就是本来就是“多余”的。

        知道了目标结构,下面我们就一步一步地来新建这些项目,先是Java SE,然后是Java Web.

2、使用向导新建符合maven结构的Java SE项目

        首先进入“新建项目”的向导对话框:

        按照图中的说明,选择"Java Project",进入新建Java SE项目的向导,输入名字,点击“下一步”即可,


        在进入的页面中,就是关键了,可以看出,现在的“Source Folder”和"Output Folder"都和预期的不一样,


        所以说,要改!

        修改的方法很简单,首先去除src目录的源代码目录属性,然后新添加自定义的目录到源代码目录列表中:

        我们要添加的源代码目录有:

src/main/java
src/main/resources
src/test/java
src/test/resources


        按照顺序将目录都添加好即可。

        修改之后的效果如下图:

        可以看到,“Source Folder”已经满足目标要求,但是“Output Folder”还是不满足的,我们需要对照着修改为

<basedir>/target/classes

        也就是


        然后直接点击“完成”就行了。

        最后在project视图中的效果是:

3、使用向导新建符合maven结构的Java Web项目

        进入新建项目的向导对话框,在项目类型选择的对话框中输入筛选条件“web”,选择“Dynamic Web Project”:


        在下一步中,输入项目名称,在“Target Runtime”那里有可能会关联上tomcat,但是请选择为“None”,其他的默认即可,点击“下一步”:

        和新建Java SE项目类似,这里也需要修改"Source Folder",只不过对话矿的样子变了,但是要做的事没有变。



        在这里“Source Folder”的设置都是一样的,但是“output Folder”就有点不一样了,默认的是“build\classes”,也就是说这个路径是基于项目的了,路径里面就没有包含项目名了,我们需要将其修改为:

target/classes


        到这里可不能点击“完成”,还有些设置项需要设置,点击进入“下一步”,


        默认的“Content directory”是一个叫做“WebContent”的目录,这个就是web资源的根目录,所有的web资源的起始目录就是这个目录,显然这个目录不是我们想要的,我们需要修改为:

src/main/webapp


        同时也把生成"web.xml"文件的选项勾选上,虽然现在支持免配置,但是实际上对于像spring这样的项目开发还是很需要web.xml文件的。之后点击“完成”就可以了。

        项目在“project exploer”视图中的效果是:

        大家要注意,直接这样的话,web根目录(圈起来那里)“藏”得比较深,实际操作起来是有困难的,但是接下来将其往maven项目转换后就不存在这个问题了。

4、新建出来的项目向maven项目的转换

        到目前为止,新建出来的两个项目都还是普通的项目,而且那个web项目的web资源编辑起来还不是特别方便,世纪钟肯定不会就这样完了的,接下来我们需要将其转换为maven项目。

        转换的方法很简单,eclipse已经内置的了,两个项目的转换方法一样,都是:项目上右键 -> Configure -> convert to maven project,

        然后会有一个弹出框,要求填写项目的坐标什么的,可以默认,但是最好填写一下,

        要注意“package”的选择,SE项目选择jar,web项目选择war。

5、结果分析

        对于Java SE项目来说,转换为maven项目之后不会有太明显的视觉变化,所以就不截图了,但是对于Java Web项目来说,肉眼可辨的变化就有点大了,截图一张:

        项目的library直接由maven接管(java se项目也是一样,但是由于原先只有jre,所以看上去变化不是很大),web根目录里也有了一个“deployd resources”的节点,其实它只是一个映射罢了,里面 的webapp还是原来的webapp,还有就是pom.xml文件,这个便是maven项目最关键的文件了,转换为maven项目后会自动新建这个文件,里面的信息就是这个项目的全部配置信息(其实还有一些是默认的,并没有配置在这个文件里面)。

        查看pom.xml文件:

        java se项目的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.songxinqiang</groupId>
    <artifactId>tmjse</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source />
                    <target />
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

        Java web项目的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.songxinqiang</groupId>
    <artifactId>tmjee</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

        可以看出来,两者其实是差不多的,只是“packaging”不一样,然后对应着war包添加了一个对应的编译插件,对于这些配置的说明,可以查看Apache maven项目的官方说明,本文就不说了,以后有时间再说。

6、总结

        本文介绍了,如何通过eclipse新建项目向导新建符合maven项目结构的Java SE 项目和 Java Web项目,并且转换为maven项目,这种方式比使用eclipse自带的maven项目新建向导新建出来的项目要好,至少结构是符合了要求的,但是这种方法也不是最简单最好用的方法,以后的文章中将会介绍一种(我自己认为)“最佳”的方法。

        下一篇将介绍将不符合maven结构的Java SE 和Java Web工程转换为maven工程,以及分析转换的结果。

        enjoy!!!

© 著作权归作者所有

共有 人打赏支持
阿信sxq

阿信sxq

粉丝 228
博文 83
码字总数 73652
作品 1
成都
后端工程师
私信 提问
使用Eclipse-Maven-git做Java开发(8)--eclipse向导新建maven工程

上一篇博客发布已经有很长一段时间了,这期间由于各种奇形怪状的原因,没有来得及及时更新,接下来我争取把间隔时间缩短一些,同时也调整一下文字风格,尽量减少多余的口水话。 本文并没有什...

阿信sxq
2015/11/03
0
0
Eclipse轻松玩转SmartFramework

SmartFramework框架和 SmartSample都是使用Maven构建,使用IDEA开发的。对于像我这样使用Eclipse,又不熟悉Maven的人来说,想玩转smart多少有些难度。这里是我在Eclipse中运行smart-sample的...

大漠真人
2013/11/24
0
2
从GitHub将Maven项目导入Eclipse4.2

简介 GitHub is a web-based hosting service for projects that user the Git revision control system. It is a social networking where you can share your code. GitHub中的Maven项目一......

z.net
2012/10/24
0
0
Smart2.0开发指南——开发工具

说明:本文为《Smart2.0开发指南》系列文章 1.1 准备开发工具 常言道:“工欲善其事,必先利其器”。下面介绍一些市场比较主流、比较犀利的开发工具用于Smart 应用开发,工具如下: Java 编译...

大漠真人
2014/01/21
0
6
Appium环境搭建Java篇

下载、安装JDK&配置Java环境变量 下载、安装SDK、ADT&配置Android环境变量 下载、安装Appium 在线安装Testng、SVN、Maven等插件 Appium简单案例 1、下载、安装JDK&配置Java环境变量 JDK下载地...

xiaomin0322
2018/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

单点登录实现原理(SSO)

简介 单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些...

echojson
11分钟前
0
0
介绍Python中6个序列的内置类型

1、Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。序列通用的操作包括:索引、长度、组合(序列相加)...

问题终结者
32分钟前
0
0
用python自制微信机器人,定时发送天气预报

0 引言 前段时间找到了一个免费的天气预报API,费了好段时间把这个API解析并组装成自己想用的格式了,就想着如何实现每天发送天气信息给自己。最近无意中发现了wxpy库,用它来做再合适不过了...

上海小胖
50分钟前
7
0
深入理解java虚拟机-垃圾收集器与内存分配策略

垃圾收集器与内存分配策略 引用计数法 就是给对象添加一个计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1,计数器为0的对象就是不可能再被使用的。 缺点:无法...

须臾之余
今天
8
0
Python+Appium自动化测试环境搭建

1.Android SDK 下载SDK并配置系统环境变量ANDROID_HOME。 2.Appium 2.1 直接下载安装 官网下载安装appium-desktop-setup.exe。 2.2 通过npm下载安装 appium本质是一个nodejs库所以要先安装n...

维他ViTa
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部