Intellij idea 解决 maven工程的部分依赖问题
2017-03-03 12:08
459 查看
Intellij idea 解决 maven工程的部分依赖问题
如果项目构建中遇到 web-app依赖web-service中的部分class打包的API jar。如下图描述:通过Maven插件完成部分class的打包操作:
Maven-jar-plugin实现部分class打包
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>api</classifier> <includes> <include>**/service/*.class</include> </includes> </configuration> </execution> </executions> </plugin>
引发的问题
Intellij Idea 无法通过Project Settings实现依赖部分class生产的jar。- 通过maven dependency 进行依赖,在多module的工程中,会导致Intellij Idea会把整个 service工程依赖进来。
<dependency> <groupId>com.study</groupId> <artifactId>service</artifactId> <version>1.0-SNAPSHOT</version> <classifier>api</classifier> </dependency>
解决办法
由于web-app只是部分依赖web-service。按照intellij idea的严格意义上讲,其实就是不依赖。- 删除web-app对web-service的依赖。
- 通过 maven-antrun-plugin 进行打包后拷贝。
- web-app增加对外部jar的编译依赖。
web-service打包拷贝
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>copy-lib-src-webapps</id> <phase>package</phase> <configuration> <tasks> <copy file="${basedir}/target/${project.artifactId}-${project.version}-api.jar" todir="${basedir}/../web-app/src/main/webapp/WEB-INF/lib"> </copy> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
web-app编译依赖
<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>${basedir}/src/main/webapp/WEB-INF/lib</extdirs> </compilerArguments> </configuration> </plugin>
注意事项
如果web-service的class变更后,在不全量执行的情况下,需要对web-service进行maven package操作Intellij Idea 导入工程后,需要手动添加对外部lib包下面的jar的依赖。
工程代码
相关文章推荐
- 使用Intellij IDEA分析解决maven依赖冲突问题
- Intellij Idea使用-解决导入maven project包依赖问题
- 解决gradle的本地工程依赖和通过maven依赖之间的冲突问题
- Activiti系列:如何把Activiti工程转换为maven工程以解决依赖项找不到的问题
- 解决gradle的本地工程依赖和通过maven依赖之间的冲突问题
- ECLIPSE中MAVEN构建spring 多模块工程jar包不能自动扫描问题解决办法
- 解决vs2008非MFC工程依赖msvcr90.dll的问题
- 怎么spring security 和maven,spring,结合jar包冲突和依赖关系问题解决办法。
- Myeclipse编译maven工程中的main函数时无法找到类问题的解决
- 解决Maven 启动Web工程锁定CSS,JS文件问题 mvn jetty:run
- Maven依赖之解决Maven优先使用Eclipse工作空间项目而非Maven库jar包问题
- Eclipse+Maven快速生成Web项目,解决部署时Maven lib依赖问题
- spring的maven依赖问题解决
- Eclipse+Maven构建web项目及部署时Maven lib依赖问题的解决
- maven解决重复依赖版本冲突问题
- Intellij IDEA 13.1.1版本下无法更新maven Repository Indices的问题解决
- MyEclipse maven 只能从本地库找添加依赖的jar问题解决
- 使用m2e将工程转化为maven工程后eclipse报Plugin execution not covered by lifecycle configuration:xxx plugin问题的解决方法
- Spring Tool Suite无法现在aspectjweaver.jar这个Maven依赖问题解决
- Intellij IDEA-maven工程编译报错的解决办法