簡體   English   中英

Maven 項目中的非 Maven 依賴項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM