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_build
    src
      \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 ---部署文件war
    pom.xml

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值