我正在使用不同的插件(ant4eclipse)來打亂我的文件。什麼是避免maven-jar插件執行的最好方法?什麼是避免maven-jar的最好方法?
- 我試圖刪除
<plugin>maven-jar-plugin</plugin>
- 我試圖
<exclude> **/* </exclude>
- 我試圖
<skip>true</skip>
無奮力
我正在使用不同的插件(ant4eclipse)來打亂我的文件。什麼是避免maven-jar插件執行的最好方法?什麼是避免maven-jar的最好方法?
<plugin>maven-jar-plugin</plugin>
<exclude> **/* </exclude>
<skip>true</skip>
無奮力
會發生什麼事,如果你申報呢?
<packaging>pom</packaging>
即使它做你想要的,要小心。我不確定是否會有負面影響 - 例如其他依賴於您的jar無法找到它的maven項目。
這需要你重新綁定所有目標,因爲它會關閉編譯,測試等。 – 2010-02-04 13:37:10
我正在使用不同的插件打開我的文件。什麼是避免maven-jar插件執行的最好方法?
首先,jar:jar
目標是bound by default在package
相對於jar
型包裝的項目。其次,無法解綁綁定到階段的插件。所以,如果你使用另一個插件(?),要麼接受生產2個JAR或更改包裝(但我認爲這不會很好)。
「無法解除綁定到階段的插件」 - 是不是在上面的答案中有'
將jar插件顯式綁定到不存在的階段。
你確定嗎?我只是試過,我仍然看到'[INFO] [jar:jar {execution:default-jar}]'。 – 2010-02-03 01:49:53
我已經使源插件以這種方式消失了,但我從來沒有擺脫過jar插件,所以我不確定。 – bmargulies 2010-02-03 02:47:29
正如其他人所說的,除了使用<packaging>pom</packaging>
之外,不可能將其關閉,這會使所有的東西都關閉,而且可能不是您想要的。
即使它會生成兩次,一個可行的解決方案是將您的jar進程綁定到package
階段,因爲這將保證在缺省之後運行。通過覆蓋相同的JAR文件,您會發現無論原始文件在哪裏,都會使用您的文件。
在Maven 3.0.x(我試過3.0.2)中,您可以通過將default-jar
執行綁定到一個不存在的階段來禁用maven-jar-plugin
,如@bmargulies suggested。不幸的是,這在2.2.1中不起作用,但是可以通過爲default-jar
執行設置替代<finalName>
和<classifier>
來防止它干擾您自己的jar;它仍然會創建一個jar文件,但它將被設置爲該項目的輔助工件,並且不會覆蓋您創建的工件。下面是應該在這兩個的Maven 2和Maven 3的示例:如果您停用maven-jar-plugin
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>never</phase>
<configuration>
<finalName>unwanted</finalName>
<classifier>unwanted</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
,maven-install-plugin
可以給你添麻煩了。在Maven 3中,可以禁用與maven-jar-plugin
相同的功能:將default-install
綁定到不存在的階段。但是,在Maven 2 maven-install-plugin
中,需要存在target/classes
目錄,並且在沒有主工件時它將安裝虛擬jar。
謝謝,這很好。我做了同樣的
我很困惑你從哪裏獲得'default-jar'執行ID。我花了一段時間才注意到,Maven在每次執行時都會打印該ID: '[INFO] --- maven-install-plugin:2.3.1:install(default-install)@ myproj ---' 在這種情況下它是'default-install',但對於其他所有插件都是相似的。謝謝你的樣品。 – JBert 2013-08-06 10:04:09
我認爲你應該改變'
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
不工作(至少不是我在IDE內部使用Maven 3.0.4 – ZachOfAllTrades 2013-12-04 22:40:17
上面提到的配置是錯誤的 - 我沒有看到任何配置上的
這是一個錯誤的答案。跳轉開關有些不同。 Documention說:「將其設置爲true以完全忽略單元測試,其使用不推薦,但有時非常方便。」 – hennr 2016-05-22 12:07:18
這應該是關鍵 - 注意使用<id>default-jar</id>
和<phase/>
。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>default-jar</id>
<phase/>
</execution>
</executions>
</plugin>
</plugins>
</build>
和maven-install-plugin一樣,爲了防止* it *抱怨沒有產生任何神器。 – 2014-06-24 10:29:53
這會產生無效的xml。我的Intelij抱怨xml有效性 – 2015-04-28 12:51:22
在我的情況下,我只想禁用jar插件,因爲jar是空的。您可以使用skipIfEmpty
選項的插件配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
</plugin>
http://stackoverflow.com/questions/12809559/remove-jar-created-by-default-in-maven – fjjiaboming 2015-11-02 03:37:10