我想使用 Maven 从我的 libs 项目文件夹中加载所有 JAR

Log*_*Wlv 5 java deployment dependencies build maven

我有一个使用 Maven 的 Java 项目。在我的项目中,我有一个名为的文件夹libs,其中包含我无法从 Internet/外部存储库加载的所有 JAR。

我的问题是如何指定 Maven 在打包、构建等过程中包含这些 JAR?

Maven 新手,抱歉,如果这是一个愚蠢的问题。

编辑:我有一个自动工具,可以pom.xml在我的 Git 上查找我的项目,以在不同的环境中构建和部署我的项目。因此,按照此处的建议将其添加到本地 Maven 存储库中将无济于事,因为它只能在我的 PC 上运行。如果我添加一个libs带有 JAR的文件夹,无论我在哪里,它都可以使用。

如果不清楚或者我弄错了,请在评论中问我。

Ger*_*ica 4

与您的编辑相反,添加到本地 Maven 存储库有所帮助,并且可以按如下方式自动化:

  • 请参阅jtahlbornMultiple install:install-file in a single pom.xml的回答。(当前版本是maven-install-plugin2.5.2我会使用它而不是默认版本。)
  • s<configuration>应该看起来像:

      <configuration>
        <file>${project.basedir}/path/to/your/libs/lib-X.jar</file>
        <repositoryLayout>default</repositoryLayout>
    
        <!-- match the dependency declaration for this artifact -->
        <groupId>logan.wlv</groupId>
        <artifactId>lib-X</artifactId>
        <version>x.y.z</version> 
        <packaging>jar</packaging>
        <!-- -------------------------------------------------- -->
      </configuration>
    
    Run Code Online (Sandbox Code Playgroud)
  • 将声明放入构建配置文件install-plugin中,例如。lib

  • 在调用首先解决依赖关系的任何阶段之前,在每台新 PC 上运行mvn initialize -P lib一次(在 的内容libs以及install-plugin声明发生更改之后运行一次),例如compile

或者

  • 通过以下方式进一步实现自动化:

      <profile>
        <id>lib</id>
        <activation>
          <file>
            <missing>${settings.localRepository}/logan/wlv/lib-X/x.y.z/lib-X-x.y.z.jar</missing>
          </file>
        </activation>
        ...
      <profile>
    
    Run Code Online (Sandbox Code Playgroud)

    mvn initialize这样第一次就可以在没有显式配置文件激活的情况下运行。