maven dependency scope(转) 及 maven找不到lib目录下的包问题
一、maven dependency scope
?
??? * compile,缺省值,适用于所有阶段,会随着项目一起发布。
??? * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
??? * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
??? * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
??? * system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。
但使用eclipse+tomcat做测试的时候发现servlet-api还是被打包到lib下面了,你要把maven插件中的WTP也安装一下,问题应该就解决了。
安装 Web Tools Platform (WTP)
要安装Web Tools Platform (WTP)。使用如下的eclipse更新URL,或者直接在Discovery站点中寻找Web Tool Project,该站点应该已经在你的Eclipse远程更新站点列表中了。
WTP: http://download.eclipse.org/webtools/updates/
?
?
二、有些项目的jar包不是在maven服务器上能够下载的,那么需要将这样的包放在项目的lib目录下,
????? 不过这样会导致maven打包时找不到包,报错。可以通过下面的配置解决这个问题
<build>
??????? <plugins>
??????????? <plugin>
????????????? <artifactId>maven-compiler-plugin</artifactId>
????????????? <configuration>
????????????????? <source>1.6</source>
????????????????? <target>1.6</target>
????????????????? <encoding>UTF-8</encoding>
????????????????? <compilerArguments>
?????????????????? <extdirs>src\main\webapp\WEB-INF\lib</extdirs>
???????????????? </compilerArguments>
????????????? </configuration>
??????????? </plugin>
??????? </plugins>
??? </build>