有些jar包未開源,在maven中央倉庫沒有未開源的jar包,所以pom文件里不能自動聯網下載,可以通過maven命令手動安裝本地maven倉庫中,手動安裝不需要聯網,前提是本地已經有要安裝的jar包,並且pom文件需要配置依賴,執行mvn命令需要配置maven的環境變量。
以阿里的下載服務端SDK為例:
1.先下載服務端SDK里的java上傳SDK(VODUploadDemo-java-1.4.11jar)版本會有更新
地址:
https://help.aliyun.com/document_detail/53406.html
常用maven參考網址:
http://mvnrepository.com/
http://search.maven.org/
http://repository.sonatype.org/content/groups/public/
http://people.apache.org/repo/m2-snapshot-repository/
http://people.apache.org/repo/m2-incubating-repository/
java上傳sdk下載地址
2.jar包所在的lib目錄cmd命令進入命令界面(注意版本號,我的這個是分階段補充的,版本號和上邊不一樣,但是做法是一樣的)
3.maven命令
pom依賴
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-vod-upload</artifactId> <version>1.4.11</version> </dependency>
語法:
mvn install:install-file -Dfile=jar包的位置(參數一) -DgroupId=groupId(參數二) -DartifactId=artifactId(參數三) -Dversion=version(參數四) -Dpackaging=jar
例子:
mvn install:install-file -DgroupId=com.aliyun -DartifactId=aliyun-sdk-vod-upload -Dversion=1.4.11 -Dpackaging=jar -Dfile=aliyun-java-vod-upload-1.4.11.jar
4.通過cmd命令執行上邊的maven命令,注意必須在有【aliyun-java-vod-upload-1.4.11.jar】包的lib目錄上執行cmd命令。
5.pom依賴
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-vod-upload</artifactId> <version>1.4.11</version> </dependency>
6.手動添加成功后的maven倉庫
7、在使用Maven的時候,如果我們要依賴一個本地的jar包的時候,通常都會使用<scope>system</scope>
和<systemPath></systemPath>
來處理。
例如:
//引用本地jar包 <dependency> <groupId>com.stu</groupId> <artifactId>test</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${pom.basedir}/lib/stu-1.0.jar</systemPath> </dependency>
如果你僅僅是這么做了,在你使用SpringBoot打包插件生成jar包的時候,你會發現這個jar包不會被打進去,進而出現錯誤。
在sprinboot項目中pom.xml文件加<includeSystemScope>true</includeSystemScope>,代表maven打包時會將外部引入的jar包(比如在根目錄下或resource文件下新加外部jar包)打包到項目jar,在服務器上項目才能運行,不加此配置,本地可以運行,因為本地可以再lib下找到外部包,但是服務器上jar中是沒有的。
這個就需要在maven插接中配置一個includeSystemScope屬性:maven打包時會將外部引入的jar包(比如在根目錄下或resource文件下新加外部jar包)打包到項目jar
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- maven打包時會將外部引入的jar包(比如在根目錄下或resource文件下新加外部jar包)打包到項目jar --> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins>