很抱歉,如果这太简单了,但我最近从标准的控制台java项目跳进了Wep应用程序,并且因为在java项目中我成功地使用maven下载jar并将它们包含在classpath ...中网络应用程序我不知道如何完成相同的工作并下载到WEB-INF上的lib文件夹,而不是仅仅将jar添加到我的类路径中。
我已经搜索了堆栈溢出和谷歌的答案,但由于我还没有找到任何答案,我担心我的方法应该完全错误。
我刚刚在eclipse上创建了我的webapp,然后将其转换为maven项目,然后在pom.xml中添加了这些依赖项,就像我在普通的java项目中所做的那样:
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
一切似乎都没问题,并且没有显示错误,但是jar文件没有下载到WEB-INF / lib文件夹中。
提前感谢您提供的任何帮助。
答案 0 :(得分:1)
如果您的项目已正确配置为&#34; Maven项目&#34;应该有一个名为&#34; Maven Dependencies&#34;的文件夹。在您的包视图中。
如果您的项目被配置为Maven项目,那么这是一个很好的提示。&#34; M&#34;在顶级文件夹上。
Eclipse将在所谓的&#34; Repository&#34;中下载。这主要位于$HOME/.m2
一般来说,你不必直接关心罐子。 Maven将下载它们并为您透明地创建一个类路径。
eclipse maven集成称为m2e
。
存储库的概念是maven的核心。它们是存储依赖项和外部依赖项的位置。您可以随时假设存在的两个存储库是已经提到的本地存储库,另一个所谓的&#34; Maven-Central&#34; see here。除此之外,您还可以使用Nexus或Artifactory等工具设置公司范围的存储库。
要在本地回购中上传依赖项,请使用mvn install
命令。
mvn install
中的哪个maven正在执行install lifecycle。
然后将生成的工件(通常是jar或war,但不一定)和一些元数据(主要是你的pom)上传到存储库。
然后,您可以通过依赖性mecahnism来对抗这些依赖关系。
您在本地存储库中安装的依赖项始终为#34; SNAPSHOT&#34;类型。还有更多要了解SNAPSHOT和Release(仅版本号)之间的区别以及如何部署/释放它们,但这些问题已经多次被提出。
答案 1 :(得分:0)
将此插件添加到pom.xml将有助于获取lib文件夹中的jar。
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>WebContent/WEB-INF/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>