配置Maven项目自动编译
本文由发表于3年前 | J2EE | 暂无评论 |  被围观 5,215 views+
让Maven项目自动编译:lib目录class目录直接运行main方法的问题关于IDEA集成开发环境

##Maven项目目录结构如下:

project
    - src    
        - main
            - java
            - resources
            - webapp
                - WEB-INF
                    - classes
                    - lib
    - target
        - project-snapshot
            - WEB-INF
                - classes
                - lib
        - classes

其中 project-snapshot就是maven编译生成的项目目录了,我们一般使用这个目录对项目进行部署,这样问题来了:

每次改动JSP文件或者Java文件,都得重新用maven编译一下,以便生成代码到该目录,有没有方便点的做法呢?接下来就是啦。

让Maven项目自动编译:

为了让改写JSP之后无需重新编译,我们只有使用src/main/webapp/这个目录进行部署了,因为一般我们是直接改动里面的文件进行编码的;

lib目录

而jar包是maven从仓库下载过来的,为了能用上下载回来的jar包,我们可以把

target/project-snapshot/WEB-INF/lib

目录联接到

src/main/webapp/WEB-INF/lib

windows下通过`mklink /j`命令(假设项目在D:/dev目录下):

mklink /j "D:\dev\project\src\main\webapp\WEB-INF\lib" "D:\dev\project\target\project-snapshot\WEB-INF\lib"

这样就把maven下载的lib目录联接到部署目录webapp下了;

class目录

对于class目录,也是同样的方法,另外需要设置IDE的自动编译输出目录到:

target/project-snapshot/WEB-INF/classes

右击项目 -> properties -> Java Build Path -> 右边面板底部设置Default output folder;

直接运行main方法的问题

但是这样Eclipse下会有个问题,直接运行某个类的main方法,会提示如下错误:

java.lang.NoClassDefFoundError: me/arthinking/test/Demo
Caused by: java.lang.ClassNotFoundException: me.arthinking.test.Demo
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Exception in thread "main" 

原因是没有读取到输出的classes文件,为此,我们可以把class编译输出目录设置为:

project/target/classes

这样就可以正常执行main方法了

把这个目录联接到webapp/WEB-INF/classes目录下即可。

编译目录设置如图:

20141204-java01

其他的配置文件目录需要联接到webapp目录,同上操作。

关于IDEA集成开发环境

据Ryan介绍,IDEA集成开发环境是不会存在找不到main方法的问题的;

另外我们也可以在pom.xml中配置classes文件的输出目录,把classes文件输出到webapp目录下,这样改写了Java文件之后需要使用maven编译下项目了。

pom.xml

<outputDirectory>D:\dev\project\webapp\WEB-INF\classes</outputDirectory>
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/maven-setting-auto-compile.html
关键字:
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2014 12/9
如果您有更好的原创技术博文或者观点,欢迎投稿:admin@itzhai.com,或者关注订阅左侧浮动面板的微信号订阅IT宅itread)发送消息。
文章评论
    没有评论
给我留言

有人回复时邮件通知我
J2EE的相关文章
随机文章 本月热门 热评
1 Apache CXF中jaxrs.serviceClasses多个Service的配置方法 2012/4/28
2 UML笔记 OOAD面向对象的分析和设计介绍 2011/10/9
3 据说这套试题对于软考很有帮助,大家可以看看 2011/4/26
4 Ext.dd.DD模拟桌面图标自动对齐 2011/4/13
5 谷歌浏览器Chrome控制台提示Uncaught ReferenceError xl_chrome_menu is not defined 2011/7/28
6 Struts2笔记 – 简单数据验证 2011/6/19
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.