无法看到如何告诉Maven在lib文件夹上安装jar

时间:2016-01-13 21:28:45

标签: java eclipse maven jar

很抱歉,如果这太简单了,但我最近从标准的控制台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文件夹中。

提前感谢您提供的任何帮助。

2 个答案:

答案 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>