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

时间:2018-02-07 14:08:35

标签: java maven deployment build dependencies

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

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

Maven的新手,对不起,如果这是一个愚蠢的问题。

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

在评论中询问我是否不清楚或者我是否错了。

1 个答案:

答案 0 :(得分:1)

与您的EDIT相反,添加到本地Maven repo 帮助,它可以按如下方式自动执行:

  • 请参阅jtahlborn's answerMultiple install:install-file in a single pom.xml。 (maven-install-plugin的当前版本是2.5.2。我会使用它而不是默认值。)
  • <configurations>应如下所示:

      <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>
    
  • install-plugin声明放入build profile,例如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>
    

    第一次没有显式配置文件激活时,只能运行mvn initialize