Maven分模块与多模块合并

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhengzhaoyang122/article/details/81096494

一、分模块


1)、当拥有多模块时,创建统一 jar 包版本管理模块,此模块作为所有模块的父模块。(new 一个 Maven project),主要是将Packaging 选择为 pom 类型。
        

 2)、创建子模块(在父模块上右键——>New——>Maven Mode
         

3)、  jar工程上图即可,当创建Web服务时:如上图——>Next——>如下图
           

二、多模块,多Web应用,合并为一个war包。(注意:需要对依赖的项目先maven install后再使用)


1)、当需要在 Web 工程中,加入 jar 工程时,只需要在Web工程引入 jar 工程坐标。在Web工程 pom.xml 文件中添加依赖

	<dependency>
		<groupId>com.yintong.parent</groupId>
		<artifactId>common</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</dependency>

2)、合并多个 Web 工程为一个 war 包。(例如:将 productWeb 工程合并到 customerWeb 工程中)

  ☛  在 customerWeb 工程的 pom.xml 文件中添加 productWeb 工程的 war 坐标。

       <build>
	  <plugins>
	     <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-war-plugin</artifactId>
		<version>2.4</version>
		<configuration>
		   <overlays>
		      <overlay>
			 <!--主要修改此处-->
			 <groupId>com.yintong.parent</groupId>
			 <artifactId>productWeb</artifactId>
		      </overlay>
		   </overlays>
		</configuration>
	     </plugin>
	  </plugins>
       </build>

  ☛  在 customerWeb 项目的 pom.xml 文件中添加 productWeb 项目的依赖。(type属性不能忽略)

        <dependency>
	    <groupId>com.yintong.parent</groupId>
	    <artifactId>productWeb</artifactId>
	    <version>0.0.1-SNAPSHOT</version>
	    <type>war</type>
        </dependency>

  ☛ 在父目录(或子目录)上右键——>Run as——>Maven install 就会对所有的子目录进行打包(jar Or war),在此项目或者对应项目的 target 目录中即可查看对应的 jar Or war 包(都可单独拿出来使用或部署)。通过压缩工具可查询项目内容。类结构如下图
     

  ☛ 注意事项:查看最终父目录的 war 包得出结论,当多个 web 项目存在相同路径相同文件名时,总分支的文件会覆盖自分支的,即 customerWeb 会覆盖 productWeb 的,如果总的没有,子分支存在多个相同文件时,查看 pom.xml 中合并的顺序(按照<overlays> 的顺序),以第一个文件的内容为主。

三、 项目启动插入 jetty 插件(运行:run as ——> maven build... ——>在 goals 中输入:clean jetty:run 即可)


  ☞ 在需要启动的项目所对应的 pom.xml 文件中加入 jetty 插件

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
	    <artifactId>jetty-maven-plugin</artifactId>
	    <version>8.1.14.v20131031</version>
	    <configuration>
	        <scanIntervalSeconds>10</scanIntervalSeconds>
		<stopPort>9999</stopPort>
		<webAppConfig>
		    <!-- 项目启动目录:http://localhost:9080/goods/   可修改-->
		    <contextPath>/goods</contextPath>
		</webAppConfig>
		<connectors>
                    <!--http的配置-->
		    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
	                <!-- 项目启动端口:不能被占用,可修改 -->
			<port>9080</port>
			<maxIdleTime>60000</maxIdleTime>
		    </connector>
		</connectors>
            </configuration>
        </plugin>

☞ 配置 Jetty(项目右键——>Run as——>Run configurations...

☞  在往后的运行中,就不需要重新配置了,只要在Debug As...Run As... 下拉中点击运行即可。

☞  启动成功之后,在配置插件的 pom.xml 文件中查看 jetty 配置的端口(9080)和项目名称(/customer),如下图

-----------------------------Game Over---------------------------------------Thanks----------------------

展开阅读全文

没有更多推荐了,返回首页