[英]Non-Maven dependecies in a Maven project
如何在 IntelliJ IDEA 中添加外部 jar 文件作為 Maven 項目的依賴項? 因為當我將其添加到依賴項列表中並嘗試使用 Maven 進行編譯時,我收到了找不到該依賴項的錯誤。
理想情況下,您應該使用mvn deploy:deploy-file將 JAR 部署到您的存儲庫。
如果這是不可能的,您可以將依賴項scope
設置為system
,然后在依賴項中包含一個systemPath
,該依賴項為 jar 提供該路徑。 這在POM 參考 - 依賴項中進行了解釋,並帶有警告,即任何依賴於具有system
范圍依賴項的工件的工件也將期望通過systemPath
找到 jar。
你可以
像這樣定義系統/本地依賴項:
<dependency> <groupId>example</groupId> <artifactId>example</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>lib/example-1.0.0.jar</systemPath> </dependency>
正如 Gimby 指出的那樣,請注意系統依賴項應該“就在那里”,因此它們不會與您的工件一起打包和部署。 請參閱此問題以供參考。
將工件安裝到您的本地存儲庫中:
mvn install:install-file -Dfile=<path-to-file> \\ -DgroupId=<myGroup> \\ -DartifactId=<myArtifactId> \\ -Dversion=<myVersion> \\ -Dpackaging=<myPackaging> \\ -DlocalRepositoryPath=<path-to-my-repo>
步驟 1:使用pom.xml
的目標install-file
配置maven-install-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>install-external-non-maven-jar-MWS-Client-into-local-maven-repo</id>
<phase>clean</phase>
<configuration>
<repositoryLayout>default</repositoryLayout>
<groupId>com.amazonservices.mws</groupId>
<artifactId>mws-client</artifactId>
<version>1.0</version>
<file>${project.basedir}/lib/MWSClientJavaRuntime-1.0.jar</file>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
務必請編輯該file
根據您的實際文件路徑(建議在路徑是將一些文件夾內的這些外部非Maven的罐子,讓我們說lib
,並把這個lib
文件夾的項目中,以使用特定項目的相對路徑和避免添加系統特定的絕對路徑。
如果您有多個外部 jar,只需對同一maven-install-plugin
其他 jar 重復<execution>
。
第 2 步:一旦您在pom.xml
文件中配置了如上所示的maven-install-plugin
,您必須像往常一樣在pom.xml
使用這些 jar:
<dependency>
<groupId>com.amazonservices.mws</groupId>
<artifactId>mws-client</artifactId>
<version>1.0</version>
</dependency>
請注意, maven-install-plugin
只會將您的外部 jar 復制到您本地的.m2
maven 存儲庫。 而已。 它不會自動將這些 jar 作為 Maven 依賴項包含到您的項目中。
這是一個小點,但有時很容易錯過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.