maven+jdk1.5编译部署工程(请尝试使用 -source 1.5 以启用注释)问题说明

本文主要是介绍maven+jdk1.5编译部署工程(请尝试使用 -source 1.5 以启用注释)问题说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.接上文|maven部署web工程基础步骤(http://simpledev.iteye.com/blog/254281)
 在开发的工程中可能会使用jdk1.5的注释或泛型,如:
@Override
@SuppressWarnings("unused")
@SuppressWarnings("deprecation")
Map<String, String> map = new HashMap<String, String>();
maven默认是使用低版本编译,mvn package -e 抛出如下一些异常:

D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\FileUtil.java:[374,28] 需
要 ';'
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\FileUtil.java:[374,33] 非
法字符: \59272
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\FileUtil.java:[374,39] 非
法字符: \58933
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\FileUtil.java:[374,45] 非
法字符: \65533

D:\wap_build2.5.1\src\main\java\org\fengzhong\wapbuild\action\news\SaveNewsIssue
ContentAction.java:[295,25] -source 1.3 中不支持注释
(请尝试使用 -source 1.5 以启用注释)
                        @SuppressWarnings("unused")
D:\wap_build2.5.1\src\main\java\org\fengzhong\wapbuild\service\research\impl\Mob
ileResearchServiceImpl.java:[165,19] -source 1.3 中不支持泛型
(请尝试使用 -source 1.5 以启用泛型)
                Map<String, String> map = new HashMap<String, String>();

D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\StringUtils.java:[134,36]
 需要 ';'
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\StringUtils.java:[134,41]
 非法字符: \59272
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\StringUtils.java:[134,47]
 非法字符: \58933
D:\wap_build\src\main\java\org\fengzhong\wapbuild\util\StringUtils.java:[134,53]
 非法字符: \65533

D:\wap_build\src\main\java\org\fengzhong\wapbuild\service\product\impl\ProjectIm
pl.java:[135,20] -source 1.3 中不支持泛型
(请尝试使用 -source 1.5 以启用泛型)
                List<Channel> temp2 = new ArrayList<Channel>();
说明:FileUtil.java和StringUtils.java在工程中没有问题,在类中写了main函数方法。


解决方法:需要对pom.xml配置plugin,如果工程中的jar文件都是统一由maven管理,配置:
<plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
就可以了,否则需要指定jar的物理位置:
<compilerArguments>
               <extdirs>D:\wap_build\src\main\webapp\WEB-INF\lib</extdirs>
             </compilerArguments>
lib默认一般放在工程~\WEB-INF\下面,同时也方便打包时将lib加入war文件中。
如果既没有使用maven管理jar,也没有指定compilerArguments ~  extdirs ~ lib配置路径,在编译时会抛出如:
D:\wap_build\src\main\java\org\fengzhong\wapbuild\action\common\MainAction.java:
[3,30] 软件包 com.opensymphony.xwork 不存在
D:\wap_build\src\main\java\org\fengzhong\wapbuild\action\common\MainAction.java:
[5,32] 找不到符号
符号: 类 ActionSupport
public class MainAction extends ActionSupport{
... 等找不到软件包或符号异常。
打开pom.xml文件,配置jdk1.5编译,例如完整pom.xml文件代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.fengzhong.wapbuild</groupId><artifactId>wap_build</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>wap_build Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.5</source><target>1.5</target><encoding>UTF-8</encoding><compilerArguments><extdirs>D:\wap_build\src\main\webapp\WEB-INF\lib</extdirs></compilerArguments></configuration></plugin></plugins></build>
</project>

 
都配置好的情况下:mvn package -e
...
[INFO] Generating war D:\wap_build\target\wap_build-1.0-SNAPSHOT.war
[INFO] Building war: D:\wap_build\target\wap_build-1.0-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 28 seconds
[INFO] Finished at: Wed Aug 12 08:52:54 GMT 2009
[INFO] Final Memory: 4M/34M
[INFO] ------------------------------------------------------------------------
在创建的wap_build第一级目录target\下面就可以找到以pom.xml文件中: artifactId-version.war命名的部署文件了。

命令索引:
 D:\>mvn archetype:create -DgroupId=org.fengzhong.wapbuild -DartifactId=wap_build -DarchetypeArtifactId=maven-archetype-webapp
 D:\>cd wap_build
 D:\wap_build>mvn package -e
目录索引:

D:/wap_buildsrc\main\java   ...工程中的java文件\main\resources   ...工程中的资源文件\main\webapp  ...工程中的页面文件(如:jsp,html,styles/css,js,images,WEB-INF/classes,WEB-INF/lib,WEB-INF/web.xml)target(BUILD SUCCESSFUL通过之后才会生成,一般重新生成时,最好把该目录删除)classes(编译后的类路径)wap_build-1.0-SNAPSHOT  ---部署文件夹wap_build-1.0-SNAPSHOT.war ---部署文件warpom.xml

 

这篇关于maven+jdk1.5编译部署工程(请尝试使用 -source 1.5 以启用注释)问题说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504377

相关文章

MybatisPlus 多数据源切换@DS注解失效问题解决

《MybatisPlus多数据源切换@DS注解失效问题解决》在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,下面就来介绍一下该问题的解决,感兴趣的可以... 在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,一个正

Centos7 firewall和docker冲突问题及解决过程

《Centos7firewall和docker冲突问题及解决过程》本文描述了一个在CentOS7上使用firewalld和Docker容器的问题,当firewalld启动或重启时,会从iptable... 目录系统环境问题描述问题排查解决办法总结本文只是我对问题的记录,只能用作参考,不能China编程说明问题,请

Java中的ConcurrentBitSet使用小结

《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

Go语言结构体标签(Tag)的使用小结

《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

Java中ScopeValue的使用小结

《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

spring中Interceptor的使用小结

《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

C#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb