Maven構建引入本地jar包

weixin_33670713發表於2017-09-06

需求:maven專案需要引入本地一個jar包。並且打包後需要把該檔案引入依賴。打包使用了maven-assembly外掛,更加細粒度的打包控制

比如專案目錄下有lib/my-dep.jar
  1. 將jar包引入pom.xml
        <dependency>
            <groupId>my-dep</groupId>
            <artifactId>my-dep</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/my-dep.jar</systemPath>
        </dependency>

scope 為system。此時必須提供systemPath即本地依賴路徑。表示maven不會去中央倉庫查詢依賴。要注意的是這個範圍是不推薦使用的,whatever, who care?

  1. 將jar包加入classpth,同樣在pom.xml
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.albert.Application</mainClass>
                            <classpathPrefix>lib/</classpathPrefix>
                            <addClasspath>true</addClasspath>
                        </manifest>
                        <manifestEntries>
                            <!-- 在Class-Path下新增配置檔案的路徑 -->
                            <Class-Path>lib/my-dep-1.0.jar</Class-Path>         
                            <!--這裡表示jar路徑加入到MANIFEST.MF-->              
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
  1. 打包時把my-dep.jar一併打包到lib。在assembly的xml檔案中,表示把pom範圍是system的依賴也打包到lib目錄
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
            <unpack>false</unpack>
            <scope>system</scope>
        </dependencySet>

相關文章