eclipse中打包Maven多模块项目

首先需要清楚maven打包时执行命令的顺序

  1. mvn -clean --清除target文件夹,以便重新打包
  2. mvn -test --用于测试编译项目是否可以成功,失败的话会打印出错误信息,比如jar包缺失等
  3. mvn -build --用于编译项目,并执行测试代码
  4. mvn -package --将编译好的class文件打包 war或者jar包
  5. mvn -install --将包安装到本地仓库供其他工程模块调用

这个顺序可以简化为clean - build - package(install)

其中我在执行mvn -test或者mvn -build时总是出错,具体错误信息为“程序包不存在,符号无效”,此处只是编译项目,我执行eclipse的build project倒是一切正常,而且项目也能正常运行,我又观察到提示不存在的程序包本地仓库都有对应的jar包。
为什么此处总是报错呢?


网上给出的原因有很多,比较常见的有:

  1. maven版本太低
  2. 需要在pom文件的build标签中添加maven编译插件的相关信息

最后看到有人提出eclipse中执行project -clean操作后再次打包 ,试了下,果然可以

记录一下clean操作的作用:

由于eclipse的编译是基于时间戳的判断机制的。
因此当你按build   all的时候有些eclipse认为时间戳没有改变的类不会被编译。
因此你可以先clean一下再编译。这个时候eclipse会将所有的以前编译信息清除然后编译。   
eclipse  --->project  ----->clean... 
选项将工程中的.class文件删除,同时重新编译工程,类似于jbuild中的rebuild

也就是说我的问题是由于旧的编译信息的存在影响了编译的执行


记录几个maven相关的问题:

  1. 项目中存在引用第三方jar的时候,要把第三方jar也一起打包可以这样配置:
<dependency>
			<groupId>com.xx.xx</groupId>
			<artifactId>xx</artifactId>
			<version>2.4.1</version>
			<scope>system</scope>
			<systemPath>
                ${project.basedir}/src/main/webapp/WEB-INF/lib/xx-xx-2.4.1.jar
            </systemPath>
</dependency>

  1. java.lang.reflect.MalformedParameterizedTypeException异常解决
 整合spring和mybatis的时候出错:Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
 加载applicationContext.xml时创建sessionFactory失败。
主要原因是包的版本问题,mybatis一定要3.0.6+,spring3+
目前测试下来没问题的版本:spring3.1.0,mybatis3.0.6
  1. com.sun.org.apache.xml.internal.security.utils does not exist问题
    解决方案:https://www.cnblogs.com/my-ordinary/p/8520403.html
发布了71 篇原创文章 · 获赞 6 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/KKALL1314/article/details/96315156
今日推荐