配置Maven使用本地lib文件夾

The official "Maven Way" of dependency management is to use Maven Central and local repository specified in thesettings.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 isnot 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.

    <repositories>
       <repository>
           <!-- DO NOT set id to "local" because it is reserved by Maven -->
           <id>lib</id>
           <url>file://${project.basedir}/lib</url>
       </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.baidu</groupId>
            <artifactId>bccs-api-lib</artifactId>
            <version>2.0.1</version>
        </dependency>

  ...


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. :-)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章