关闭

maven的war依赖

标签: maven
352人阅读 评论(0) 收藏 举报
分类:

项目中模块越来越多,需要对项目进行模块拆分,模块中包含web资源(页面,js,配置文件,class文件)。A、B两个项目在POM文件中的类型都是war

A作为主项目需要引入B项目(据说同名同目录文件以A项目为主):

B项目配置:

         <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-war-plugin</artifactId>  
            <configuration>  
            <attachClasses>true</attachClasses>
             <classesClassifier>api</classesClassifier>     
            </configuration>  
        </plugin>

maven-jar-plugin插件install的时候既打WAR又打出jar包,classesClassifier配置方便找到jar包


maven-jar-plugin突然不行没有jar包了 用maven-war-plugin


A项目配置:引入war、warpath、jar依赖

	<dependency>
		<groupId>com.eversec.satanbox</groupId>
		<artifactId>health-web</artifactId>
		<version>3.0.0</version>
		<type>war</type>
	</dependency>
	 <dependency>
		<groupId>com.eversec.satanbox</groupId>
		<artifactId>health-web</artifactId>
		<version>3.0.0</version>
        <type>warpath</type>
    </dependency>
    
	<dependency>
		<groupId>com.eversec.satanbox</groupId>
		<artifactId>health-web</artifactId>
		<version>3.0.0</version>
		<type>jar</type>	
		<classifier>api</classifier>
	</dependency>
<!-- 		 <resources>  
        <resource>  
            <directory>src/main/resources</directory>  
            <includes>  
                <include>*.*</include>  
                <include>**/*.*</include> 
            </includes> 
            <filtering>true</filtering> 
        </resource> 
    </resources> -->
		<plugins>

            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                 <version>2.1.1</version> 
                <configuration>  
                    <overlays>  
                        <overlay>  
                            <groupId>com.eversec.satanbox</groupId>  
                            <artifactId>health-web</artifactId> 
                        </overlay>  
                    </overlays>  
                     <webResources> 
                    <resource> 
                        <directory>src/main/webapp</directory> 
                        <includes> 
                            <include>*.*</include> 
                            <include>**/*.*</include>  
                        </includes>  
                        <filtering>true</filtering>  
                    </resource>  
                </webResources>  
                </configuration>  
            </plugin>
	     <plugin>
             <groupId>org.appfuse</groupId>
             <artifactId>maven-warpath-plugin</artifactId>
             <extensions>true</extensions>
<!--             <executions>
                <execution>
                     <goals>
                    <goal>add-classes</goal>
                    </goals>
                </execution>
            </executions> -->
         </plugin>

maven-war-plugin插件和maven-warpath-plugin插件。

注意在eclipse上运行可以使用class层代码(springMVC的control层代码也可以)

但是web资源(page页面之类的),需要在A项目上install 用war包在tomcat上运行。


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果仅仅只需要引入war包中的class文件,B项目还是如上配置,A中只需引入jar包即可。


mvn在打包时:如果存在父项目,会先从本地找父项目,找不到就会去配置的私服上找。可以配置多个maven,但是打包的时候只会去环境变量中配置的maven去找需要的jar,找不到就会报错哦。配置多个mirror镜像时【比如一个私服和一个指定类型加速mirror】,可以先屏蔽掉私服下载完jar,然后再恢复。[多个mirror的调用机制不太了解,我是用aliyun的mirror下载相关的springBoot jar]

如果项目a下存在maven module,maven 子项目的父项目是项目a,那他们相互依赖无法成功打包,可以将项目a中pom.xml中的maven module先屏蔽掉打包【只要本地或者私服有项目a的构建】,之后就可以正常打包项目a以及对应的maen module。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19439次
    • 积分:499
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:20篇
    • 译文:0篇
    • 评论:0条
    文章分类