`

使用Maven 2遇到的几个问题

阅读更多

转载 http://reiz6153.blog.163.com/blog/static/40108915200911481255375/

 

1、问题:安装完eclipse的maven插件后,重新启动eclipse,出现提示框,内容是maven需要一个已安装的jdk。如果出现这个问 题,maven的一些功能会使用不了,maven的某些jar需要eclipse外部的jdk来支持。
             解决:这里需要注意的是,这个jdk不是eclipse默认的那个,而是另外安装的,而且需要在eclipse.ini文件指定。在该文件的第一行加入指 令
             -vm
             E:\Java\jdk1.6.0_03\jre\bin\javaw.exe
-vm后一定要回车,而且启动eclipse的快捷方式中不要有 -vm选项,否则会使eclipse.ini中的-vm选项无效的。
        2、问题:在配置cactus/jetty容器内测试的时候,出现Missing Cactus property [cactus.contextURL]的测试错误(是error而不是failure),脱离maven运行junit也出现同样的问题,在网上查了很 多资料都没有解决这个问题。
             解决:由于maven默认配置是不输出debug信息的,于是手动建立一个新的maven build配置,选择Goals为test并选中Debug Output复选框,运行后在控制台中看到异常信息 org.apache.maven.wagon.ResourceDoesNotExistException: Unable to locate resource in repository,该行上面的debug信息为Unable to get resource 'org.mortbay.jetty:org.mortbay.jetty:pom:5.1.9' from repository central (http://repo1.maven.org/maven2),显然从网上和本地repository都没有抓到这个依赖,而我在pom.xml中加 入的jetty依赖是6.1.14版本,cactus是1.8.1版本,也许当前版本的maven和cactus依赖的是5.1.9版本,于是下载 5.1.9版本的jetty,并用mvn install安装到本地repository,将pom.xml中的jetty依赖更新,重新运行maven test,问题依旧,原来mvn install后,repository中只有jar文件而没有pom文件,maven是不可能识别的。于是脱离maven进行junit测试,测试通过 了。
        3、问题:Missing indirectly referenced artifact XXX
             解决:可以到remote maven repository手动下载jar、pom和相应的sha文件,并copy到local repository中该artifact对应的目录中。多加几个remote repository也可以,但如果remote没有所需要的artifact,仍然要靠local repository来解决。最糟的就是实在是没有这样的artifact可用,那就得换其它版本的artifact了,每个artifact的 pom.xml是最好的参考。
        4、问题:在eclipse中,mvn clean install一个多模块项目时,出现........\target\classes(拒绝访问。)的调试信息,war包死活打不上,而clean、 compile、test等等一切生命周期都没问题,除了war。
             解决:在命令行下执行mvn clean install任务,一切正常,war包也顺利打成。至今也没找到为什么会出现上诉问题的原因。
        5、问题:在命令行下构建一个工程时,出现“javac: 无效的目标版本: 1.6“的提示,构建失败。
             解决:将pom中maven-compiler-plugin的source和target指定为1.5,重新构建,成功。原因可能是工程所依赖的某个组 件不支持1.6的版本号,那就试着降低javac版本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics