Maven, how to add additional libs not available in repo

前端 未结 5 1612
深忆病人
深忆病人 2020-12-11 05:57

I have a maven project that has a set of library dependancies that are not available via any maven repository. How can I add those libraries to the pom? I want to do this s

相关标签:
5条回答
  • 2020-12-11 06:17

    You can declare it as a dependency with system scope.

    <project>
    ...
     <dependencies>
       <dependency>
         <groupId>sun.jdk</groupId>
         <artifactId>tools</artifactId>
         <version>1.5.0</version>
         <scope>system</scope>
         <systemPath>${java.home}/../lib/tools.jar</systemPath>
       </dependency>
     </dependencies>
     ...
    </project>
    
    0 讨论(0)
  • 2020-12-11 06:20

    recently I created a small UI Util to install libraries to you local repository. It works the same way as install:install-file.

    https://github.com/escv/maven-install-ui

    0 讨论(0)
  • 2020-12-11 06:23

    You can't 'add them to the pom'. You have to put them in some repo. You can put them in the local repo with the maven-install-plugin, as suggested by the error message. Or you can deploy them in a local copy of Nexus or something like it.

    0 讨论(0)
  • 2020-12-11 06:31

    You can include them with your project in a sub-directory (perhaps lib/). You can also provide .bat and/or .sh files containing all the appropriate calls to the maven-install-plugin necessary for each project member (or server env) to add these jars to the local repo.

    This approach allows new project members to get up & running quickly, without having to invest several hours in setting up a new public repo for your project or team.

    0 讨论(0)
  • 2020-12-11 06:32

    You have 3 options:

    • Add your libraries to your local repository via install:install-file (obviously, this is not portable, you won't be able to build the project on another machine without doing the same).
    • Install and run an "enterprise repository" like Nexus, Archiva, or Artifactory and add your libraries via deploy:deploy-file.
    • Setup a file based repository as described in this previous answer and put your libraries in there.

    Then, declare your libraries in your pom like any other dependency.

    0 讨论(0)
提交回复
热议问题