`

mvn clean package 错误:不兼容的类型的解决方案

 
阅读更多

 

场景:

泛型现在运用得越来越多,如果在项目中用到了类似下面的泛型方法:

    public <X> List<X> query(final String hql, final Map<String, ?> values);
    public <X> X find(Class<X> clazz);

你会发现在eclipse 中编译、运行都正常,但是如果用maven的打包命令 mvn clean package  进行打包时会发现有类型下面的错误提示信息:

     …………. 错误: 不兼容的类型

这个根源是因为eclipse中使用的自带的JDT编译,而maven 默认是用得时 $JAVA_HONE中的javac 来编译的,javac 相当JDT 检查更严格,故无法编译打包通过。

解决方案有两个:

第一个:借助Eclipse的JDT编译

点击 Eclipse –> Project –> Clean…  使用JDT将源代码编译到target文件夹下,然后直接使用mvn package 打包即可(不要加clean)。

第二个:pom.xml中指定JDT编译工具来编译(推荐此方法)

在在项目的pom.xml中修改maven-compiler-plugin的配置,参考如下:

<build>
    ...
	<plugins>
	    ...
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.1</version>
			<configuration>
				<source>${jdk.version}</source>
				<target>${jdk.version}</target>
				<compilerId>eclipse</compilerId>
			</configuration>
			<dependencies>
				<dependency>
					<groupId>org.codehaus.plexus</groupId>
					<artifactId>plexus-compiler-eclipse</artifactId>
					<version>2.2</version>
				</dependency>
			</dependencies>
		</plugin>
		....
	</plugins>
	...
</build>

参考资料:http://maven.apache.org/plugins/maven-compiler-plugin/non-javac-compilers.html

本文介绍到此结束@Michael Sun.

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/software/build/mvn-package-generics-compiles-error/

 

 

分享到:
评论

相关推荐

    Maven编译不兼容解决方案

    eclipse 中编译、运行都正常,但是如果用maven的打包命令 mvn clean package 进行打包时会发现有类型错误

    maven安装与配置要点和难点以及常见报错和解决方案.zip

    5. **Maven插件问题**:插件版本不兼容或配置不当也可能引发错误,仔细检查POM中的插件配置。 ** Maven进阶配置 ** 1. **多模块项目**:对于大型项目,可以使用Maven的多模块配置,将项目划分为多个子模块。 2. *...

    优客服(UCKeFu)系统安装手册1

    优客服(UCKeFu)系统是一款多渠道客服解决方案,旨在帮助企业和组织高效地管理来自不同平台的客户交互。本安装手册主要针对Java开发者,指导他们如何使用Maven编译并运行UCKeFu项目。以下将详细介绍各个步骤和关键...

    maven学习笔记

    - **解决方案**:通过 Maven 将项目划分为多个模块,每个模块作为一个独立的工程,便于分工合作与维护。 2. **统一管理依赖库** - **问题**:传统的项目管理中,依赖的 JAR 包需手动复制到项目的 lib 目录下,这...

    maven软件3.5.0版本

    六、常见问题与解决方案 1. **依赖冲突**:使用`mvn dependency:tree`查看依赖树,找出冲突的库,通过调整依赖范围或使用 `&lt;exclusions&gt;` 标签排除冲突。 2. **构建失败**:检查错误日志,通常问题出在代码错误、...

    original-spark-examples-2.4.3.jar.zip

    - **编译源码**:运行`mvn clean package`命令,这将会编译源码并生成新的jar包。 - **测试验证**:将编译出的新jar包替换原有的`spark-hadoop-cloud`模块,然后用PySpark重新启动,尝试访问HBase2,如果一切顺利...

    maven 3.5.0 Cannot assign configuration entry 'pluginArtifacts' with value '${pl

    5. **清理并重新构建**:运行 `mvn clean` 清理构建目录,然后运行 `mvn install` 或 `mvn package` 重新构建项目。 6. **搜索解决方案**:在Maven用户邮件列表、Stack Overflow 或其他开发者论坛中搜索类似问题,...

    Spring Boot项目导出war包放到tomcat运行跳转到页面出现404报错

    - 执行`mvn clean package`命令即可生成WAR文件。 5. **部署到Tomcat**: - 将生成的WAR文件复制到Tomcat的`webapps`目录下,并重启Tomcat服务器。 通过以上步骤,我们不仅解决了404错误的问题,还确保了Spring ...

    apache-maven-3.6.1.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM...无论是单个模块的小型项目,还是包含多个子模块的大型项目,Maven都能提供一致且高效的解决方案。

    编译Hadoop源码需要的maven文件

    这时需要根据错误信息,查阅文档,搜索解决方案,或在社区提问求助。 9. **Hadoop版本与Maven版本兼容性**:不同的Hadoop版本可能需要特定版本的Maven进行编译,因此在开始编译前,确认你的Maven版本与Hadoop源码...

    es安装ik分词器

    mvn clean package ``` 此步骤会编译 IK 分词器代码并生成 JAR 文件。 ##### 5. 复制 JAR 文件 将构建好的 JAR 文件复制到 Elasticsearch 的 lib 目录下。命令如下: ``` cp target/elasticsearch-analysis-ik-*...

    macOS编译hadoop-2.8.5

    在macOS上编译Hadoop 2.8.5是一个技术性的任务,因为官方预编译的版本可能不兼容macOS系统。以下是一份详细的步骤指南,解释如何...在运行过程中,如果遇到任何错误,查阅官方文档或在线社区资源通常都能找到解决方案。

    Hadoop源码及编译工具

    如果你遇到问题,可以参考官方文档、社区论坛或已有的博客文章,例如描述中提到的博主的文章,来寻求解决方案。同时,描述中提到“有需要的地方可以联系我”,这意味着你可能可以向提供压缩包的人寻求帮助,这对于...

    Eclipse3 Maven插件

    6. **常见问题与解决方案** - 依赖找不到:检查网络是否通畅,Maven仓库配置是否正确。 - 插件冲突:确认不同插件的执行顺序,或者调整插件版本以解决冲突。 - 构建错误:检查POM文件是否有语法错误,或者依赖...

    DBSyncService:一个很棒的工具来帮助您支持数据库同步

    在命令行中运行“mvn clean package”命令,将会清理项目,编译源代码,运行测试,并最终打包项目为可执行文件。 DBSyncService的主要特点包括: 1. **支持多种数据库**:DBSyncService兼容多种常见的数据库系统,...

    apache-doris-0.12.0-incubating-src.tar.gz-java8 编译版

    4. **执行编译**:使用 Maven 进行编译,命令可能是 `mvn clean package -Pbuild-native`。这个过程会生成可执行文件和库文件。 5. **安装部署**:将编译好的二进制文件部署到服务器,并按照官方文档的指导进行配置...

    Maven实战(入门篇)

    源自于希伯来语中的“Baal ha-ne'emânîm”,意指知识的积累、专家或是内行,是一个由Apache基金会维护的开源项目管理工具,其核心功能在于简化Java项目构建流程,提供统一的项目信息管理和依赖管理解决方案。...

    flink-1.10.2-bin-scala_2.12.tgz

    4. **编译与构建**:运行`mvn clean package -DskipTests`命令,这将编译源码并创建可部署的二进制包。 5. **验证与测试**:编译完成后,执行单元测试确保代码无误,如`mvn test`。 6. **生成Parcels**:对于CDH...

    maven 打包 部署到tomcat 删除的jar包

    - 在修改完`pom.xml`之后,执行`mvn clean package`命令来清理旧的构建产物并重新打包应用程序。 - 这一步骤非常重要,因为它可以确保新的依赖项被正确地包含在内。 4. **部署并验证**: - 将重新打包后的WAR...

    jrebel + myeclipse9.0 + tomcat 热部署攻略

    此外,虽然JRebel对大多数项目类型都有很好的支持,但有时可能会遇到兼容性问题,这时可能需要调整JRebel的配置或查找相关的解决方案。 通过这个攻略,你将能够有效地利用JRebel提升Spring项目的开发效率,减少因为...

Global site tag (gtag.js) - Google Analytics