Intellij IDEA为Maven私有仓库与Resin搭建集成开发环境

开头先用图示的方式介绍一下Maven中央仓库、私有服务器、与本地仓库的关系,如下图:

上面非常直观的解释他们这三者之间的关系,本人就不再详细展开说明,不明白的请自行Google :)

下面直接进入主题,因为项目需要使用Maven中央仓库与私有仓库的jar包并要运行Resin中,同时采用直接部署代码的方式而非用war包的方式部署项目。

下面我详细是一下配置方法:
按照惯例,先介绍一下开发环境版本:
OS:windows 7
IDE:Intellij IDEA 2016.3.4;
Build Automation:Apache Maven 3.2.5;
Server:Resin-3.1.14;
我这里不介绍如何安装Intellij IDEA、Maven、Resin,不会的请自行Google;

(1)配置Maven私有仓库,让Intellij IDEA(以下简称idea)根据Maven全局配置文件自动识别私有仓库地址,并自动下载项目中依赖的jar包;

<br />
  &lt;profiles&gt;<br />
    &lt;profile&gt;<br />
      &lt;!-- profile的唯一标识 --&gt;<br />
      &lt;id&gt;Test&lt;/id&gt;<br />
      &lt;!-- 远程仓库列表 --&gt;<br />
      &lt;repositories&gt;<br />
        &lt;!--包含需要连接到远程仓库的信息 --&gt;<br />
        &lt;repository&gt;<br />
          !--远程仓库唯一标识 --&gt;<br />
          &lt;id&gt;Test&lt;/id&gt;<br />
          &lt;!--远程仓库名称 --&gt;<br />
          &lt;name&gt;Test-Repository&lt;/name&gt;<br />
          &lt;url&gt;http://url...&lt;/url&gt;<br />
          &lt;!--如何处理远程仓库里发布版本的下载 --&gt;<br />
          &lt;releases&gt;<br />
            &lt;!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 --&gt;<br />
            &lt;enabled&gt;true&lt;/enabled&gt;<br />
          &lt;/releases&gt;<br />
          &lt;!--如何处理远程仓库里快照版本的下载。--&gt;<br />
          &lt;snapshots<br />
            &lt;enabled&gt;false&lt;/enabled&gt;<br />
          &lt;/snapshots&gt;<br />
        &lt;/repository&gt;<br />
      &lt;/repositories&gt;<br />
    &lt;/profile&gt;<br />
  &lt;/profiles&gt;</p>
<p>  &lt;!-- 手动激活profiles的列表 --&gt;<br />
  &lt;activeProfiles&gt;<br />
    &lt;activeProfile&gt;Test&lt;/activeProfile&gt;<br />
  &lt;/activeProfiles&gt;<br />

(2)更新idea中Maven私有仓库中索引

1) 打开idea设置选项,需要修改Maven Home地址与全局配置文件地址,修改好全局配置文件后务必要把后面的“Override”对钩打上,否则其他项目使用的Maven配置文件时无法生效,见下图;

2) 接着进入到“Maven > Repositories”,会看到“Indexed Maven Repositories”中配置的Maven私有地址已经加入到列表中,之后请点击这个私有仓库地址,然后再点击右上角“Update”更新按钮,让idea可以检索这个私有仓库索引目录,见下图;

如果列表中没有发现该私有地址,那么就表示Maven配置文件配置有错误,请继续查看第(1)步“配置Maven私有仓库部分…”修改,如果修改配置文件正确,那么idea会在右小角弹出小气泡窗口,发现可以更新设置文件。点击“Import Changes”,就可以在“Indexed Maven Repositories”发现了,如下图;

还有一种情况比较极端,确认配置文件修改正确,但是idea始终无法更新到,那么请定位到这个项目中,把idea环境配置文件删掉,在项目根目录中“.idea”文件夹和“项目名称.iml”,然后重新打开idea导入项目,正常导入项目完成后,打开idea的Maven配置,就会发现“Indexed Maven Repositories”私有仓库地址加入进去了。最后当然别忘记点击“Ok”保存设置。(如果还是木有,请重复上面步骤,并请同时检查一下自己的人品haha)

(3)配置Resin环境

创建resin配置文件“test.xml”,格式如下:

<br />
&lt;resin xmlns=&quot;http://caucho.com/ns/resin&quot; xmlns:resin=&quot;http://caucho.com/ns/resin/core&quot;&gt;<br />
  &lt;log name=&quot;&quot; level=&quot;info&quot; path=&quot;stdout:&quot;/&gt;<br />
  &lt;cluster id=&quot;&quot;&gt;<br />
    &lt;server id=&quot;&quot; port=&quot;6898&quot;&gt;<br />
      &lt;http port=&quot;此处填写resin端口号&quot;/&gt;<br />
    &lt;/server&gt;<br />
    &lt;resin:import path=&quot;${resin.home}/conf/app-default.xml&quot;/&gt;<br />
    &lt;host id=&quot;&quot; root-directory=&quot;.&quot;&gt;<br />
      &lt;!-- 数据库 --&gt;<br />
      &lt;!--<br />
      &lt;database jndi-name=&quot;jdbc/...&quot;&gt;<br />
        &lt;driver type=&quot;com.mysql.jdbc.Driver&quot;&gt;<br />
          &lt;url&gt;jdbc:mysql://127.0.0.1/test&lt;/url&gt;<br />
          &lt;user&gt;test&lt;/user&gt;<br />
          &lt;password&gt;test&lt;/password&gt;<br />
        &lt;/driver&gt;<br />
      &lt;/database&gt;<br />
      --&gt;<br />
        &lt;!-- 应用根路径配置 --&gt;<br />
	    &lt;web-app id=&quot;/&quot; document-directory=&quot;项目路径指定到web跟目录&quot; lazy-init=&quot;true&quot;/&gt;<br />
    &lt;/host&gt;<br />
  &lt;/cluster&gt;<br />
&lt;/resin&gt;<br />

在idea中添加resin配置,注意修改resin配置文件地址和Http端口号,如下图:

(4)从Maven仓库中导出jar包到项目中

打开运行,输入cmd打开命名提示符,导出jar包命令格式:mvn dependency:copy-dependencies -DoutputDirectory=导出的项目路径;(第一次输入命名时,Maven会自动下载自身配置中的依赖文件,下载速度快与慢跟本地网络环境有关系,如果有点慢请耐心等待完成)
例如,见下图:

上图中命令:mvn dependency:copy-dependencies -DoutputDirectory=src/main/webapp/WEB-INF/lib

(5)在idea中编译项目并启动resin

见下图:

如上图所示,在启动resin后,如果没有错误提示,表示开发环境已经搭建成功!

至此,在idea中,配置Maven与Resin的集成开发环境全部完成 🙂

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.