[英]How does Maven understand release:prepare command?
我正在嘗試創建一個插件,該插件將從Maven Central下載並安裝jars作為系統工具。 所以我希望我的台詞像
mvn install-plugin:install org.chaschev:cap4j:1.0
類似於Ruby的
gem install capistrano
該插件將收集有關從JAR創建的快捷方式的所有必需信息。 即,此jar將包含實現安裝接口的類。
Maven如何理解,要執行諸如release:prepare
之類的命令,它需要下載並運行release插件? 有更好的/其他方法嗎?
您是說如何定義comamnd行中的插件/目標與插件實現之間的關系? 然后答案是plugin.xml
。 請參閱plugin.xml中的發行插件,例如maven-release-plugin-2.0.jar:
<goalPrefix>release</goalPrefix>
...
<mojos>
<mojo>
<goal>help</goal>
...
<mojo>
<goal>prepare</goal>
...
還是您的意思是,Maven如何發現可用的插件? 那么答案是:
org.apache.maven.plugins
和org.codehaus.mojo
${prefix}-maven-plugin
,例如cap4j-maven-plugin
cap4j
,然后將插件描述放在<plugins>
下的POM中。 <pluginRepositories>
指向插件存儲庫 在您自己的項目中使用默認的Maven組是不好的。 相反,為您的插件定義自己的組,如下所示:
<pluginGroups>
<pluginGroup>org.chaschev</pluginGroup>
</pluginGroups>
並將您的插件從cap4j
重命名為cap4j-maven-plugin
。 然后,Maven將發現您的插件,而無需在POM中進行進一步的改動。
或者,沒有<pluginGroups>
,只需將以下內容放入您的POM:
<plugins>
<plugin>
<groupId>org.chaschev</groupId>
<artifactId>cap4j</artifactId>
<version>...</version>
<configuration>
...
</configuration>
</plugin>
...
</plugins>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.