【问题标题】:In what directory to put java libraries for maven project?在什么目录中放置 maven 项目的 java 库?
【发布时间】:2012-03-23 02:11:08
【问题描述】:

我发现 Maven 暗示了特定的目录布局。但我从这里不明白:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html 应该放置编译和运行我的代码所需的 java 库。我认为它们不应该放在“src/main/resources”下,因为资源类似于图像左右。此外,将它们放在“src/main/java”下看起来也不正确。如果我不使用 maven,我会将库放在项目的根 lib 目录中。但我认为对于 maven 项目来说这不是正确的。请指教。

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

【问题讨论】:

    标签: java maven


    【解决方案1】:

    Maven 以与“标准”Java 项目不同的方式处理您的项目依赖项。

    您在项目的 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>
    

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

    【讨论】:

    • 我明白了。但是IDE不应该有那些库,所以我可以在IDE中开发和编译我的源代码而没有不满意的链接或smth?
    • 您可以使用 Eclipse 的 maven 插件,它将解析您的 pom.xml 并自动为您下载库并更新您的项目构建路径。
    • 我应该在本地安装 maven,还是使用 maven-plugin 安装 Eclipse 就足够了?
    • 两者,本地安装的 Maven 允许您从命令行运行 maven 构建,maven eclipse 插件允许您的 IDE 了解您的 pom.xml 并保持您的项目与 pom 同步。
    • 我在 eclipse 中创建了一个 maven 项目,向 pom.xml 添加了依赖项,但我使用外部库的源仍然被标记为错误。
    【解决方案2】:

    在 Maven 中,您不会在项目中保留库。您指定对这些库的依赖关系,它们会被填充到您的本地存储库中。在构建时,如果你正在打包库(比如一个战争文件),它们会被拉入 target//WEB-INF/lib。但总的来说,整个想法不是处理或管理这些库,只是管理你的 pom 文件中的依赖关系,其余的就忘了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 2011-05-06
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      相关资源
      最近更新 更多