在哪个目录中放置maven项目的java库?

在哪个目录中放置maven项目的java库?,java,maven,Java,Maven,我发现Maven暗示了特定的目录布局。但从这里我不明白: 编译和运行代码所需的java库应该放在哪里。我认为它们不应该放在'src/main/resources'下,因为资源类似于图像。此外,将它们放在“src/main/java”下看起来也不太合适。如果我不使用maven,我会将库放在项目的根lib目录中。但我不认为这对maven项目是正确的。请告知 UPD:我解决了这个问题。问题是,我将源代码的包设置为src.main.myApp,而不是main.myApp。这似乎让maven感到不安。ma

我发现Maven暗示了特定的目录布局。但从这里我不明白: 编译和运行代码所需的java库应该放在哪里。我认为它们不应该放在'src/main/resources'下,因为资源类似于图像。此外,将它们放在“src/main/java”下看起来也不太合适。如果我不使用maven,我会将库放在项目的根
lib
目录中。但我不认为这对maven项目是正确的。请告知


UPD:我解决了这个问题。问题是,我将源代码的包设置为src.main.myApp,而不是main.myApp。这似乎让maven感到不安。

maven以不同于“标准”Java项目的方式处理项目依赖关系

在项目的pom.xml中声明所依赖的库:

e、 g


4.0.0
org.example
你的项目
1.0-快照
战争
您的项目网站
org.codehaus.jackson
杰克逊地图绘制者
1.8.5

当您使用maven命令构建项目时,即
mvn安装
,它将为您下载依赖项并将它们存储在本地存储库中。

在maven中,您不在项目中保留库。您可以指定这些LIB上的依赖项,并将它们填充到本地存储库中。在构建时,如果您正在打包lib(比如一个war文件),它们确实会被拉入target//WEB-INF/lib。但总的来说,整个想法不是为了处理或管理这些库,而是为了管理pom文件中的依赖项,而忘了其他的。

我明白了。但是IDE不应该有这些库吗,这样我就可以在IDE中开发和编译我的源代码,而不需要不满意的链接或smth?你可以使用eclipse的maven插件,它将解析你的pom.xml并自动为你下载库并更新你的项目构建路径。我应该在本地安装maven吗,或者有一个带有maven插件的eclipse就足够了吗?本地安装的maven允许您从命令行运行maven构建,maven eclipse插件允许您的IDE理解您的pom.xml并保持您的项目与pom同步。我在eclipse中创建了一个maven项目,向pom.xml添加了依赖项,但使用外部库的源代码仍然被标记为错误。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>your-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>your-project-web</name>

    <dependencies>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.8.5</version>
        </dependency>
    </dependencies>     
</project>