2009-11-02 7 views
8

Piszę plugin Maven i używam wartości domyślnych dla wszystkich parametrów, takich jak to:Jak skonfigurować ustawienia domyślne dla parametru z wielu wartości dla Maven plugin

/** 
* The file with the site structure. 
* 
* @parameter expression="${generateSite.siteFile}" default-value="${basedir}/src/oda/site.xml" 
*/ 
private File siteFile; 

Teraz dodaję nowy parametr, który jest zbiorem. Czy istnieje sposób na ustawienie wartości domyślnych dla parametru takiego jak następujący?

/** 
* A list of file/directory names to exclude in the processing. 
* 
* @parameter ???? 
*/ 
private Set<String> excludes; 

Odpowiedz

8

Aby mój wiedzę, to w rzeczywistości nie jest to możliwe, nie ma prawdziwego sposób określić wartości domyślne dla typów parametrów z wielu wartości (jak tablice, kolekcje, lub mapy), przynajmniej nie jako parameter. Musiałem to zrobić w przeszłości zbyt i po przeczytaniu wątki jak array (or collecton) as a default-value of a mojo configuration parameter lub configuring a list as default value for a plugin parameter, skończyło się na ustawienie domyślne w metodzie execute(), jak Chris wspomniano w komentarzu do his answer (patrz na przykład flexmojos:wrapper wtyczki sources i parametru parameters) .

+0

Oto odpowiedź, którą podejrzewałem. Miałem krótkie spojrzenie na kod źródłowy Mavena, ale potem wydawało mi się, że potrzebuję również źródła Plexus - i tam właśnie się zatrzymałem. Załóżmy, że masz rację ;-) –

+0

Cóż, nadal nie jestem w 100% pewny, ale Flexmojos opracowane przez Sonatype, wydaje mi się, że są one reprezentatywne dla najnowocześniejszych rozwiązań i stanowią godne zaufania referencje. –

-1

Nie sądzę, że zestaw jest wyraźnie wspierane ale dodaje zadziała:

/** 
* A list of file/directory names to exclude in the processing. 
* 
* @parameter 
*/ 
private String[] myFiles; 

Następnie można skonfigurować go za pomocą:

<myFiles> 
    <param>value1</param> 
    <param>value2</param> 
</myFiles> 

BTW ta została podjęta z Typy parametrów z wieloma wartościami sekcja o numerze this page, która również opisuje inne sposoby dopuszczania parametrów z wieloma wartościami.

+0

Zgodnie z dokumentacją, którą łączysz z sobą, powinien działać java.util.Collection - tak właśnie wymyśliłem pierwotny plan. Z pewnością działa z zestawem w sposób, w jaki go opisujesz. Ale to nie jest ustawienie wartości domyślnych, jest to normalna konfiguracja specyficzna dla projektu. Dokumentacja nie wspomina nic o ustawianiu wartości domyślnych w parametrach wielowartościowych (lub nie jest w stanie tego zrobić). –

+1

Przepraszam, oczywiście nie przeczytałem poprawnie pytania! Uważam jednak, że odpowiedź brzmi "nie". Kilka lat temu szukałem podobnej odpowiedzi na listach mailingowych Mavena i znalazłem tylko odpowiedź "Nie sądzę". Kopanie wokół kodu splotu (który Maven używa kontenera), a to wspierało tę odpowiedź. W miejscach, w których chcieliśmy to zrobić, skończyło się właśnie ustawianie wartości domyślnych w metodzie execute(). – Chris

Powiązane problemy