2016-12-25 160 views
0

比方說,我添加以下依賴於我的pom.xml:如何讓IntelliJ IDEA自動提取對工件罐的依賴關係?

<dependency> 
    <groupId>org.ini4j</groupId> 
    <artifactId>ini4j</artifactId> 
    <version>0.5.4</version> 
</dependency> 

我現在可以使用ini的類如預期,但如果我嘗試建立的jar和運行它,它會給我一個「noclassdeffounderror」錯誤。當我檢查jar的內容時,它不包含org/ini4j。

我能夠進入文件來解決這個問題 - >項目結構 - >文物

Extracting into Output Root
After extracting into Output Root

如果我想添加其他的依賴,我只好每次都做,這是非常乏味的(我不需要在NetBeans上這樣做)。然後我嘗試使用以下插件(我在NetBeans上使用這些插件)讓Maven自動創建一個具有依賴項的jar。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>3.0.2</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>main.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>1.7.1</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

在NetBeans上,這會自動將所有依賴關係添加到jar文件,但它不會對IntelliJ IDEA執行任何操作。我不知道我在做什麼,沒有用。我怎樣才能讓IntelliJ IDEA自動提取依賴到輸出根目錄?

回答

0

您的intellij的劑量是否與您的Netbeans使用的maven使用相同的版本?如果檢查正常,嘗試另一種插件使脂肪罐子比如如下因素:

<build> 
<plugins> 
    <!-- any other plugins --> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    </plugin> 
</plugins> 

+0

我的兩個NetBeans項目和項目的IntelliJ使用4.0.0版。我試過你建議的插件,但依賴項仍然沒有,除非我自己手動添加它。無論如何,謝謝你的幫助! – user123125209123

相關問題