[英]Importing external JAR with NoClassDefFoundError - depedencies
我必須在我的項目中使用另一個團隊作為.jar
文件提供的庫。 但是,當我使用這個庫運行代碼時,我得到了NoClassDefFoundError
。 我已經進行了一些調查,我知道如果外部團隊將在類路徑(例如 lib 文件夾)上創建具有所有所需依賴項的jar
,則可以避免這種情況。 所以我的理解是,然后我可以導入提到的庫,所有需要的子 jar 都將在文件夾 lib 中。 問題:我的想法是否正確? 我應該要求另一個團隊為 lib 提供所有子 jar 依賴項嗎? 此解決方案是否有任何替代方案,而無需提供包含所有依賴項的jar
,從而避免此類錯誤?
如果你可以用maven編譯你的項目,那么必須有所有需要的jar文件。 如果您只選擇“jar”文件並執行它,它將失敗,因為您必須在類路徑中包含依賴項。
另一種選擇是構建包含其中所有依賴項的 jar 文件。
例如,使用maven-assembly-plugin :
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.your.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${project.artifactId}-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.