2016-12-25 55 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

相关问题