2016-08-12 87 views
1

我在我的項目中有很多依賴關係。是否可以修改POM文件以將所有依賴項解包到中央位置並引用構建的位置。這樣我就不必爲每個構建都解壓到目標文件夾。解包Maven依賴一次,以加快Maven構建

我將有一個'release'配置文件,通常會執行maven解包。我只是想加快開發建設。

+0

爲什麼你需要解壓你的依賴建項目運行的? –

+0

你知道通過運行maven所有的依賴關係已經被緩存在$ HOME/.m2/repository的本地硬盤上了......爲什麼你需要解壓依賴關係?沒有意義?請詳細說明一下詳細信息... – khmarbaise

+0

我使用netbeans JavaFX項目中的股票POM。如果我刪除解壓依賴插件 - 然後我得到構建成功,但運行時錯誤。導致:java.lang.NoClassDefFoundError:org/slf4j/LoggerFactory – Aerith

回答

0

您將不得不使用dependency:unpack-dependencies目標。 使用配置中的outputDirectory選項。

對於如:

<project> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.10</version> 
     <executions> 
      <execution> 
      <id>unpack-dependencies</id> 
      <phase>package</phase> 
      <goals> 
       <goal>unpack-dependencies</goal> 
      </goals> 
      <configuration> 
       <includes>**/*.class</includes> 
       <excludes>**/*.properties</excludes> 
       <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>true</overWriteSnapshots> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 
+0

仍然得到:--- maven-dependency-plugin:2.10:unpack-dependencies(unpack-dependencies)@ MyProject --- 開箱C:\ Users \ admin \ .m2 \ repository \ org \ scream3r \ jssc \ 2.8。 0 \ jssc-2.8.0.jar添加到D:\ Dev \ MyProject \ target \ .. \ alternateLocation幷包含「**/*。class」並排除「**/*。properties」 - 對於包含在我的項目 – Aerith

0

編輯: Netbeans的股票POM爲JavaFX包括行家Codehaus的拆包。刪除並更改操作不使用該插件,並且不再爲每個構建打開包裝。

0

註釋掉在清潔行動目標,nbactions.xml

<action> 
     <actionName>run</actionName> 
     <goals> 
      <!--<goal>clean</goal>--> 
      <goal>package</goal> 
      <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal> 
     </goals> 
     <properties> 
      <runfx.args>-jar "${project.build.directory}/${project.build.finalName}.jar"</runfx.args> 
     </properties> 
    </action>