我在我的項目中有很多依賴關係。是否可以修改POM文件以將所有依賴項解包到中央位置並引用構建的位置。這樣我就不必爲每個構建都解壓到目標文件夾。解包Maven依賴一次,以加快Maven構建
我將有一個'release'配置文件,通常會執行maven解包。我只是想加快開發建設。
我在我的項目中有很多依賴關係。是否可以修改POM文件以將所有依賴項解包到中央位置並引用構建的位置。這樣我就不必爲每個構建都解壓到目標文件夾。解包Maven依賴一次,以加快Maven構建
我將有一個'release'配置文件,通常會執行maven解包。我只是想加快開發建設。
您將不得不使用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>
仍然得到:--- 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
編輯: Netbeans的股票POM爲JavaFX包括行家Codehaus的拆包。刪除並更改操作不使用該插件,並且不再爲每個構建打開包裝。
註釋掉在清潔行動目標,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>
爲什麼你需要解壓你的依賴建項目運行的? –
你知道通過運行maven所有的依賴關係已經被緩存在$ HOME/.m2/repository的本地硬盤上了......爲什麼你需要解壓依賴關係?沒有意義?請詳細說明一下詳細信息... – khmarbaise
我使用netbeans JavaFX項目中的股票POM。如果我刪除解壓依賴插件 - 然後我得到構建成功,但運行時錯誤。導致:java.lang.NoClassDefFoundError:org/slf4j/LoggerFactory – Aerith