配置Maven使用本地lib文件夹

The official "Maven Way" of dependency management is to use Maven Central and local repository specified in the settings.xml file (which usually points to $HOME/.m2/repository. While it works great for projects that rely on a large number of open source libraries and satisfies 95% of dependency management needs in those projects, there is that 5% of the time when a jar is not sourced from a Maven project. One example is a jar using JNI so is only available for certain OS platforms. How do we integrate this jar into Maven dependency management? If you search the web for hints, you may be led to believe that you either have to bend to the Maven Way or to use the systemPath. But the Maven Way will force you to maintain a local repository for a trival library. The systemPath on the other hand does not work naturally with packaging. Developers will most likely ask "Can I check in this library to my (your_favorite_VCS) with my project and still have Maven use it in a way just like any other dependency?" The answer is YES. Just follow the steps below:

1. Create a directory under your project, say "lib".

2. Use Maven to install your jar to the lib directory.

mvn install:install-file -DgroupId=com.baidu -DartifactId=bccs-api-lib -Dversion=2.0.1 -Dpackaging=jar -Dfile=bccs-api-lib-2.0.1.jar -DlocalRepositoryPath=D:\svn\go_backend\lib


3. Setup your POM like this.

   
      
          
           lib
           file://${project.basedir}/lib
      

    

   
        
            com.baidu
            bccs-api-lib
            2.0.1
        

  ...


Now you can check in/out bccs-api-lib-2.0.1.jar just like any other file in your project and Maven will manage the dependency on mylib.jar just like any other dependency artifact. Perfect harmony. :-)

你可能感兴趣的:(构建工具)