Domanda

Ho un pom super-definito in cui specificare una directory di "risorse" per le risorse. In uno dei miei progetti, la mia pom pom estende che super, e vorrei aggiungere una risorsa aggiuntiva. Ho provato:

    <resources>
        <resource>
            <targetPath>/</targetPath>
            <directory>additionalDir</directory>                
        </resource>
    </resources>

Ma che si traduce in solo additionalDir essendo nelle risorse e non include le risorse del super pom. C'è un modo per estendere le risorse del super pom?

È stato utile?

Soluzione

Il comportamento che hai descritto è previsto.

Ricordate che il vostro POM Super eredita dal di Maven di default POM e praticamente qualsiasi plugin che si definisce nel vostro pom sovrascrive in modo efficace l'impostazione predefinita in POM. A titolo di esempio, per abilitare il filtro sulla risorsa di default, è necessario specificare il percorso in POM. A tale scopo:

<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

Non questo:

<resources>
  <resource>
    <filtering>true</filtering>
  </resource>
</resources>

La directory di default non lo fa ribollire per voi, anche se hai specificato lì. Ci potrebbe essere un MOJO speciale di farlo per voi, ma non riuscivo a trovare uno.

Altri suggerimenti

Vedere costruire-helper-maven-plugin pagina utilizzo di.

Sì, esperto di sovrascrive le risorse del POM genitore quando ridefinire nuova sezione delle risorse.

Tuttavia, un modo semplice per aggiungere risorse è quello di

  1. Rimuovere la sezione risorse dal POM
  2. Mostra L'efficace POM
  3. Copia le risorse dal vostro POM efficace nel progetto
  4. Sostituire i percorsi assoluti con quelli relativi
  5. Aggiungi il tuo risorse aggiuntive

So che questa domanda è piuttosto vecchio, ormai, ma forse qualcuno troverà questo utile:

Si può facilmente farlo utilizzando il plugin risorsa Maven.

In sostanza, ciò che fa di default (invocando le risorse: le risorse della porta) si sta muovendo il contenuto di tutte le directory elencate nella sezione build / risorse utilizzando il filtro dichiarato nel ${project.build.outputDirectory} Se ora si desidera aggiungere alcune ulteriori risorse senza influenzare queste sezioni, si può semplicemente spostare le risorse lì da soli. Un no, questo non significa trascinare e cadere lì.

I Maven Resources Pluginprovides un obiettivo di nome resources:copy-resources che fa esattamente questo per voi: Coping file utilizzando filtri da un luogo ad un altro, o come afferma il plug-doc:

  

È possibile utilizzare il Mojo copia-risorse per copiare le risorse che non sono nel layout di default Maven o meno dichiarati nella / elemento risorse accumulo e collegarlo a una fase

Il vantaggio evidente rispetto alla build-helper, che viene suggerito in altre soluzioni, è che, mentre la build-helper è solo in grado di intervenire durante la fase di generate-sources, il plugin risorse funziona in ogni fase. (Anche se sarebbe saggio da eseguire prima della fase di confezionamento)

Una completa esempio su come utilizzare questo è fornito qui , come parte della pagina plugin progetto.

Quello che fa è affrontare il contenuto della directory di risorse non elencati "src/non-packaged-resources" in "${basedir}/target/extra-resources". Ma dal momento che il plugin vaso (che crea l'archivio jar) crea in pratica un archivio zip della directory "${project.build.outputDirectory}", si consiglia di metterlo lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top