我正在開發一個使用API v3.1.1的新Maven插件,因爲我需要升級到Maven 3.1.1,並需要處理工件存儲庫的以太網方式,以及檢索工件版本的完整列表。我使用Eclipse Aether(0.9.0.M4),不是 Sonatype Aether。如何在使用API 3.1.1的Maven插件中使用Aether(eclipse)?
我已經通過閱讀http://wiki.eclipse.org/Aether並試圖演示http://git.eclipse.org/c/aether/aether-demo.git/tree/,但我一直無法理解爲什麼內的AbstractMojo
一個子類不起作用以下。
兩個RepositorySystem repoSystem
,RepositorySystemSession repoSession
,List<RemoteRepository> projectRepos
和List<RemoteRepository> pluginRepos
是null
。
我也嘗試使用@Component
注入那些結果相同。
有沒有什麼我錯過了爲了讓這些對象注入mojo?
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.repository.RemoteRepository;
...
public MyMojo extends AbstractMojo
{
/**
* The entry point to Aether, i.e. the component doing all the work.
*
* @component
*/
private RepositorySystem repoSystem;
/**
* The current repository/network configuration of Maven.
*
* @parameter default-value="${repositorySystemSession}"
* @readonly
*/
private RepositorySystemSession repoSession;
/**
* The project's remote repositories to use for the resolution of project dependencies.
*
* @parameter default-value="${project.remoteProjectRepositories}"
* @readonly
*/
private List<RemoteRepository> projectRepos;
/**
* The project's remote repositories to use for the resolution of plugins and their dependencies.
*
* @parameter default-value="${project.remotePluginRepositories}"
* @readonly
*/
private List<RemoteRepository> pluginRepos;
// Your other mojo parameters and code here
...
}
你可以顯示你的插件的完整pom文件嗎? – khmarbaise
是的,問題出現在pom.xml中。我有太多的依賴關係,事情沒有得到妥善解決。現在開始工作,請參閱解決方案udner – Moni