Maven管理的jar没有发布到WEB-INF/lib下的解决方案
2014-04-15 15:46
441 查看
标准web工程在eclipse中利用m2eclipse插件添加依赖管理后,在部署过程中没有将依赖的jar包自动拷贝到/WEB-INF/lib中。
参考了一些朋友的做法手动执行
[java] view
plaincopy
mvn dependency:copy-dependencies -DoutputDirectory=src/main/webapp/WEB-INF/lib -DincludeScope=runtime
命令将jar包拷贝到/WEB-INF/lib目录下。
这种做法固然可以,但是也会带来一些不便。
1、需要手动执行命令。
2、不能时时更新。
以下列出网上查找到的解决方法,m2eclipse plugin方式已验证通过。
通过验证eclipse版本:eclipse-jee-helios-SR2-win32
m2eclipse插件地址:http://m2eclipse.sonatype.org/sites/m2e
标准web工程通过m2eclipse添加依赖管理步骤:
1、“Maven ” –> “Enable dependency Management“
2、Web Deployment Assembly中添加maven dependencies
步骤如下图:
工程 -> 右键 -> preferences
.classpath文件中会有修改
[xhtml] view
plaincopy
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
为
[xhtml] view
plaincopy
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
(执行“Maven ” –> “Update Project Configuration “未生效,故手动添加。必须deploy时候才会拷贝jar包到lib目录下,而非在更新maven依赖时候拷贝jar包。 )
以下为原文内容:
Eclipse : Web Deployment Assembly & Maven dependencies issue
Published: September 3, 2010 , Updated: September 3, 2010 , Author: mkyong
print
In Eclipse 3.5 or early version, in order to deployed the Maven dependencies to the correct “/WEB-INF/lib ” folder, you have to configure the dependencies via “Java EE Module Dependencies”, and the updated “.classpath ” file
will look like following :
File : “.classpath”, by Java EE Module Dependencies…
[xhtml] view
plaincopy
...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
...
Since Eclipse 3.6, the “Java EE Module Dependencies” is replaced by “Web Deployment Assembly”, but you can do the same via the “Referenced Projects Classpath Entries”, however, it will update the “.classpath ” file as following :
File : “.classpath”, by Web Deployment Assembly…
[xhtml] view
plaincopy
...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="../"/>
</attributes>
</classpathentry>
...
Sadly, the default (value=”../”) makes all the Maven’s dependencies failed to deploy.
Not a big issue, you still can modify the (value=”../”) to (value=”/WEB-INF/lib”) manually, but it will get override every time you run a Maven build. No worry, there are still have two solutions :
Ignore the “Referenced Projects Classpath Entries” settings, instead, make the Maven supports WTP 2.0
[java] view
plaincopy
mvn eclipse:eclipse -Dwtpversion=2.0
It will generate a new file named “org.eclipse.wst.common.component “, under “settings ” folder, see a portion of this file :
File : “org.eclipse.wst.common.component”, by WTP
[xhtml] view
plaincopy
...
<dependent-module archiveName="jsp-api-2.1.jar" deploy-path="/WEB-INF/lib"
handle="module:/classpath/var/M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
...
With WTP support, it helps to deploy the Maven dependencies to “/WEB-INF/lib ” folder correctly.
Install the m2eclipse , an Eclipse plugin to integrate Maven into the Eclipse IDE. After the installation, right click on the project
folder, select “Maven ” –> “Update Project Configuration “, it will update the “.classpath ” file accordingly, see a snippet
File : “.classpath”, by m2eclipse
[xhtml] view
plaincopy
...
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
...
It helps to deploy the Maven dependencies correctly as well.
参考了一些朋友的做法手动执行
[java] view
plaincopy
mvn dependency:copy-dependencies -DoutputDirectory=src/main/webapp/WEB-INF/lib -DincludeScope=runtime
命令将jar包拷贝到/WEB-INF/lib目录下。
这种做法固然可以,但是也会带来一些不便。
1、需要手动执行命令。
2、不能时时更新。
以下列出网上查找到的解决方法,m2eclipse plugin方式已验证通过。
通过验证eclipse版本:eclipse-jee-helios-SR2-win32
m2eclipse插件地址:http://m2eclipse.sonatype.org/sites/m2e
标准web工程通过m2eclipse添加依赖管理步骤:
1、“Maven ” –> “Enable dependency Management“
2、Web Deployment Assembly中添加maven dependencies
步骤如下图:
工程 -> 右键 -> preferences
.classpath文件中会有修改
[xhtml] view
plaincopy
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
为
[xhtml] view
plaincopy
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
(执行“Maven ” –> “Update Project Configuration “未生效,故手动添加。必须deploy时候才会拷贝jar包到lib目录下,而非在更新maven依赖时候拷贝jar包。 )
以下为原文内容:
Eclipse : Web Deployment Assembly & Maven dependencies issue
Published: September 3, 2010 , Updated: September 3, 2010 , Author: mkyong
Problem
In Eclipse 3.5 or early version, in order to deployed the Maven dependencies to the correct “/WEB-INF/lib ” folder, you have to configure the dependencies via “Java EE Module Dependencies”, and the updated “.classpath ” filewill look like following :
File : “.classpath”, by Java EE Module Dependencies…
[xhtml] view
plaincopy
...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
...
Since Eclipse 3.6, the “Java EE Module Dependencies” is replaced by “Web Deployment Assembly”, but you can do the same via the “Referenced Projects Classpath Entries”, however, it will update the “.classpath ” file as following :
File : “.classpath”, by Web Deployment Assembly…
[xhtml] view
plaincopy
...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"
sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="../"/>
</attributes>
</classpathentry>
...
Sadly, the default (value=”../”) makes all the Maven’s dependencies failed to deploy.
Solution
Not a big issue, you still can modify the (value=”../”) to (value=”/WEB-INF/lib”) manually, but it will get override every time you run a Maven build. No worry, there are still have two solutions :
1. WTP Support
Ignore the “Referenced Projects Classpath Entries” settings, instead, make the Maven supports WTP 2.0[java] view
plaincopy
mvn eclipse:eclipse -Dwtpversion=2.0
It will generate a new file named “org.eclipse.wst.common.component “, under “settings ” folder, see a portion of this file :
File : “org.eclipse.wst.common.component”, by WTP
[xhtml] view
plaincopy
...
<dependent-module archiveName="jsp-api-2.1.jar" deploy-path="/WEB-INF/lib"
handle="module:/classpath/var/M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
...
With WTP support, it helps to deploy the Maven dependencies to “/WEB-INF/lib ” folder correctly.
2. m2eclipse plugin
Install the m2eclipse , an Eclipse plugin to integrate Maven into the Eclipse IDE. After the installation, right click on the projectfolder, select “Maven ” –> “Update Project Configuration “, it will update the “.classpath ” file accordingly, see a snippet
File : “.classpath”, by m2eclipse
[xhtml] view
plaincopy
...
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
...
It helps to deploy the Maven dependencies correctly as well.
相关文章推荐
- Box Splines 目录
- CentOS 6.5 正式版发布 免费下载
- 安卓屏幕唤醒与休眠
- 回调函数(Callback)
- js 截取字符串
- 还没
- 主人拿刀帮宠物狗打架 萨摩耶犬被砍4刀险被夺命
- Ubuntu编译Android系统130G结果磁盘不够解决
- Oracle 重建索引的必要性
- 精益设计: “纸上谈兵”的说服力
- My97DatePicker 时间控件使用
- 何为类?何为对象?区别又在哪里呢?
- iis7 win2008server r2 aspx
- ASP.NET MVC应用程序使用axd格式文件
- 1个简单的Log
- css控制背景示例(css设置背景图片、设置背景颜色)
- 定时器的专用函数
- 上,下拉电阻的作用与计算
- 创业者必须了解的五件事
- Recovery命令详细介绍