簡體   English   中英

Maven:如何將我的外部 jar 包含到構建可執行 jar 中

[英]Maven: How to include my external jar into build executable jar

我正在編寫 Spring 應用程序,那里有兩個外部 jar。 它在 IDE 中工作,但是當我使用 maven 構建可執行 jar 時,它失敗並出現錯誤 java.lang.NoClassDefFoundError: to my external jars。 我該如何解決這個問題? 我在 pom 文件中的依賴項是:

<dependency>
            <groupId>com.myapp.myappawsprovider</groupId>
            <artifactId>MyAppProvider</artifactId>
            <version>1.0.0</version>
            <scope>system</scope>
            <systemPath>/Users/Projects/Java/MyApp/MyAppProvider/target/MyAppProvider Provider-1.0.0.jar</systemPath>
        </dependency>

我只用 men 包構建它。

如果您的外部 jars 不存在於中央 maven 存儲庫中,您可以隨時使用以下命令將它們添加到本地 maven 存儲庫中

mvn install:install-file -DlocalRepositoryPath=[path of local maven repo] -DcreateChecksum=true -Dpackaging=jar -Dfile=[jar file path] -DgroupId=[xxx] -DartifactId=[yyy] -Dversion=[zzz]

然后,您可以在 pom.xml 中為這些外部 jar 添加適當的依賴項。

希望這可以幫助

首先將jar添加到maven本地存儲庫。 mvn install:install-file -Dfile="path of jar" -DgroupId="com.external.jar" -DartifactId="externalJar" -Dversion="version of your jar" -Dpackaging=jar在你項目的 pom.xml 中添加依賴項 - <dependency> <groupId>com.external.jar</groupid> <artifactId>externalJar</artifactId> <version>version of your jar</version> </dependency> 參考

在 pom.xml <buid><plugins>...</plugins></build>部分中添加帶有jar-with-dependencies descriptorRefmaven-assembly-plugin 它創建具有所有必需依賴項的uber jar 請參閱此處的配置部分

<build>
   <plugins> 
       <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

您還可以使用此處描述的maven-shade-plugin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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