2015-03-26 12 views
7

Ho una mappatura RPM plugin di Maven così:Sezioni di mapping opzionali nel plug-in Maven RPM?

<mapping> 
    <directory>/etc/myconfig</directory> 
    <configuration>true</configuration> 
    <sources> 
    <source> 
     <location>${project.build.directory}</location> 
     <includes> 
     <include>*.conf</include> 
     </includes> 
    </source> 
    </sources> 
</mapping> 

Tuttavia, a seconda del processo di confezionamento, ci possono essere file .conf pari a zero per mettere in/etc. Quando ciò si verifica, plug-RPM dice:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1.2:rpm (default) on project clients: 
Unable to copy files for packaging: You must set at least one file. -> [Help 1] 

C'è un modo per avere una sezione di mappatura che è felice con inclusi i file di zero?

risposta

2

Il meglio che sono riuscito a fare è omettere il tag <includes>, che prende tutto da quello specificato in <location>.

location

Il file o la directory da includere. Se viene specificata una directory, vengono inclusi anche tutti i file e le sottodirectory.

È necessario essere il più specifici possibile nel percorso per questi mapping che non includono modelli di inclusione specificati. Ho aggiunto confs alla seguente posizione per evitare di inserire tutto il resto in project.build.directory.

Anche se nessun file è selezionato, lo <directory> verrà comunque creato.

<mapping> 
    <directory>/etc/myconfig</directory> 
    <configuration>true</configuration> 
    <sources> 
    <source> 
     <location>${project.build.directory}/confs</location> 
    </source> 
    </sources> 
</mapping>