当前位置:   article > 正文

在eclipse项目中使用maven管理依赖_eclipse怎么使用maven拉取依赖

eclipse怎么使用maven拉取依赖

本文所介绍内容不使用任何eclipse插件,经测试适用最新版的eclipse欧罗巴

概览:

  • 如何导入maven项目至eclipse中
  • 建立自有Maven  Java类库服务器
  • 建立符合maven代码库标准的自定义类库

Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。

我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就把这些庞大的类库提交到代码库中,如果是j2ee项目,光类库可能就有百兆,严重影响checkout速度,如果是远程开发就不敢想象了。而引入maven来管理依赖,就可以很好的控制依赖项的版本,并且项目中不存在具体依赖lib,只有对于依赖的描述,来源也可以很好的集中控制。

<o:p> </o:p>

我们的项目在eclipse wtp下开发,而项目的依赖我用maven来管理,并且同时也不影响wtp的正常使用,以下是整合eclipse和maven的方法和步骤,关于maven的使用这里不做介绍,相关的文档网上有很多,本文仅做简单介绍:

以一个webapp项目my-webapp为例

1. 建立支持maven的eclipse项目

首先用maven来建立标准布局的webapp项目,然后用maven生成eclipse wtp项目配置信息,再用eclipse导入即可

下面先说说第一种:

1.1 生成maven项目
生成标准布局的webapp项目,在控制台执行下面命令(groupId后面是包名,artifactId后面是项目名称):

mvn archetype:create -DgroupId=net.jeffrey
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp<o:p></o:p>

生成标准布局的普通java项目,执行:

mvn archetype:create -DgroupId=net.jeffrey -DartifactId=my-app<o:p></o:p>

完成后你会看到已经生成了一个名为my-webapp的文件夹,这就是刚刚生成好的项目目录

在my-webapp根目录下,你会看到名为pom.xml的文件,这个就是maven的项目描述文件

编辑pom配置项目所需依赖,例如下面

xml 代码

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframeworkartifactId>
  4. <version>2.0scope>
  5. dependencies>

<o:p></o:p>

Maven的代码库是这样的目录结构,groupId是该类库所属的组织,作为文件目录,包名结构映射成目录结构,artifactId就是具体的类库名称了,是groupId的一个子目录,version是版本号,每个版本都有一个单独的目录,里面放置的就是具体的jar包。

比如spring-2.0.jar在maven代码库中的路径就是org/springframework/spring/2.0/spring-2.0.jar

关于依赖的写法,可以去这里查询:http://mvnrepository.com/

1.2  生成eclipse项目

在控制台下进入项目目录,如果是从maven webapp项目生成eclipse wtp,执行:

mvn –Dwtpversion=1.0 eclipse:eclipse(wtp1.0以上版本均可用)

普通eclipse项目执行:mvn eclipse:eclipse

然后在eclipse中import项目即可

1.3  在eclipse中设置maven路径变量

刚导入的项目上会有错误标记,不用担心,因为还没有设置maven的类库变量

打开项目的属性框,在Java Build Path里我们可以看到项目依赖类库的路径都已经给自动设置好了

<v:shapetype coordsize=”21600,21600″ o:spt=”75″ o:preferrelative=”t” path=”m@4@5l@4@11@9@11@9@5xe” filled=”f” stroked=”f”> <v:stroke joinstyle=”miter”> <v:formulas> <v:f eqn=”if lineDrawn pixelLineWidth 0″> <v:f eqn=”sum @0 1 0″> <v:f eqn=”sum 0 0 @1″> <v:f eqn=”prod @2 1 2″> <v:f eqn=”prod @3 21600 pixelWidth”> <v:f eqn=”prod @3 21600 pixelHeight”> <v:f eqn=”sum @0 0 1″> <v:f eqn=”prod @6 1 2″> <v:f eqn=”prod @7 21600 pixelWidth”> <v:f eqn=”sum @8 21600 0″> <v:f eqn=”prod @7 21600 pixelHeight”> <v:f eqn=”sum @10 21600 0″> </v:f> <v:path o:extrusionok=”f” gradientshapeok=”t” o:connecttype=”rect”> <o:lock aspectratio=”t”> </o:lock><v:shape o:spid=”_x0000_i1025″ type=”#_x0000_t75″ alt=”demo_buildpath.jpg” style=”width: 338.25pt; height: 384.75pt; visibility: visible;”> <v:imagedata src=”file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.jpg” o:title=”demo_buildpath”> </v:imagedata></v:shape></v:path></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas></v:stroke></v:shapetype>

下面设置maven的路径变量M2_REPO

Window -> Preferences -> Java -> Build Path -> Classpath Variables,New

Name命名为M2_REPO,路径为你的本地的maven类库地址,这里为C:/Documents and Settings/jeffrey/.m2/repository,设置成功后重新编译,发现项目的错误标记已经消除了,至此,eclipse项目已经导入成功了

1.4  为项目添加新的依赖

编辑pom文件,添加新的dependency,保存後

在控制台分别执行:

mvn eclipse:clean

mvn -Dwtpversion=1.0 eclipse:eclipse

在eclipse中刷新项目即可看到新的依赖项已经添加到eclipse项目中

1.5 非maven标准的项目布局

前面已经介绍了如何新建一个maven项目并导入到eclipse中,但对于已有的wtp项目,其项目布局是不符合maven方式的(eclipse下wtp项目web目录在项目根目录下WebContent,maven布局是在src/main/webapp),这就不能直接通过eclipse:eclipse来生成eclipse的依赖

但可以通过改写项目pom文件来指定源码目录和测试源码目录:

xml 代码

  1. <build>
  2. <finalName>my-webappsourceDirectory>
  3. <testSourceDirectory>testbuild>

对于web根目录,还没有什么好办法来特别指定,如果哪位朋友知道,麻烦指教。

2.  建立Maven2的本地代码库服务器,也就是常说的“私服”

官方的maven repository服务器特别的慢,还记得上次海底电缆事故么?官方的服务器根本就无法访问,那段时间简直要抓狂。并且官方服务器类库版本通常不是最新,有时候想用最新版的还得自己动手。(下面会介绍如何自己动手做),所以建立一个自己的本地代码服务器对于整个团队就特别有意义。

Maven的服务器很简单,一个普通的http服务器就行,比如apache,装好apache以后。

将你本地代码库文件夹拷贝到apache安装目录下htpdocs/maven2,windows用户是C:/Documents and Settings/jeffrey/.m2/repository,linux下是 /home/Jeffrey/.m2/repository(注意.m2在linux下是隐藏文件夹)

启动apache服务器,在浏览器中输入http://localhost/maven2/repository,应该可以查看到repository的文件目录

编辑项目pom,指定本地的代码库服务器

在project中加入:

xml 代码

  1. <repositories>
  2. <repository>
  3. <id>mylibsurl>
  4. repositories>

<o:p></o:p>

可以加入多个repository,mvn会按照顺序检索,如果都没有找到,最后会去找官方的服务器

<o:p> </o:p>3. 添加新的类库到本地代码服务器中

在maven官网有很多类库都找不到,只能自己动手,丰衣足食。

请先确认官网确实没有的情况下再自己做,毕竟还是挺麻烦的

可在以下两个网站查阅:http://mvnrepository.com/,http://repo1.maven.org/maven2/

前面已经说明了maven代码库的文件目录组织方式,同一个jar对于每个版本都有一个独立的文件夹来存放,除了jar还要有该jar的描述文件.pom,以及他们的校验文件.sh1

.pom文件里定义了该jar的名称、版本以及该jar所依赖到的其他jar(这也就是为什么引入一个jar却带出一大堆的jar来)

最简单的pom如下:

<project> </project>

xml 代码

  1. xml version=”1.0″ encoding=”UTF-8″?>
  2. <project>
  3. <modelVersion>4.0.0groupId>
  4. <artifactId>xxxversion>
  5. <dependencies>
  6. project>

为jar和pom生成校验文件

可以通过一个ant任务来做:

xml 代码

  1. <include name=”**/*.pom” />
  2. <include name=”**/*.jar” />
  3. <include name=”**/*.xml” />
  4. <exclude name=”**/*.sh1″ />
  5. checksum>
  6. target>

<o:p></o:p>

把生成好的sh1文件和jar、pom按照前面介绍的结构布局拷贝到apache的代码库中,当然你也可以直接拷到本地代码库中。

<o:p> </o:p>

<o:p>顺便抱怨一句,JE的博客编辑器非常难用,各种各样的bug不说,(比如我上面概览下面第一条怎么都加不上颜色),还特别不稳定,保存后经常丢失内容,所以只能先在word里面编辑,但拷过来又是一堆格式要改,特别是列表格式!
</o:p>

原文地址:http://www.javaeye.com/topic/98480

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/88871
推荐阅读
相关标签
  

闽ICP备14008679号