Maven: How to include jars, which are not available in reps into a J2EE project?

后端 未结 10 970
失恋的感觉
失恋的感觉 2020-11-28 18:17

in my J2EE project I\'ve a couple of dependencies, which are not available in any Maven repository, because they\'re proprietary libraries. These libraries need to be availa

相关标签:
10条回答
  • 2020-11-28 18:46

    @Ric Jafe's solution is what worked for me.

    This is exactly what I was looking for. A way to push it through for research test code. Nothing fancy. Yeah I know that that's what they all say :) The various maven plugin solutions seem to be overkill for my purposes. I have some jars that were given to me as 3rd party libs with a pom file. I want it to compile/run quickly. This solution which I trivially adapted to python worked wonders for me. Cut and pasted into my pom. Python/Perl code for this task is in this Q&A: Can I add jars to maven 2 build classpath without installing them?

    def AddJars(jarList):
      s1 = ''
      for elem in jarList:
       s1+= """
         <dependency>
            <groupId>local.dummy</groupId>
            <artifactId>%s</artifactId>
            <version>0.0.1</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/manual_jars/%s</systemPath>
         </dependency>\n"""%(elem, elem)
      return s1
    
    0 讨论(0)
  • 2020-11-28 18:48

    Continue to use them as a system dependency and copy them over to target/.../WEB-INF/lib ... using the Maven dependency plugin:

    http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html

    0 讨论(0)
  • 2020-11-28 18:49

    As you've said you don't want to set up your own repository, perhaps this will help.

    You can use the install-file goal of the maven-install-plugin to install a file to the local repository. If you create a script with a Maven invocation for each file and keep it alongside the jars, you (and anyone else with access) can easily install the jars (and associated pom files) to their local repository.

    For example:

    mvn install:install-file -Dfile=/usr/jars/foo.jar -DpomFile=/usr/jars/foo.pom
    mvn install:install-file -Dfile=/usr/jars/bar.jar -DpomFile=/usr/jars/bar.pom
    

    or just

    mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0 -Dpackaging=jar
    

    You can then reference the dependencies as normal in your project.

    However your best bet is still to set up an internal remote repository and I'd recommend using Nexus myself. It can run on your development box if needed, and the overhead is minimal.

    0 讨论(0)
  • 2020-11-28 18:54

    you can install them in a private, local repository (e.g. .m2/repository under your home directory): more details here

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