Pregunta

Tengo un pom súper definido en el que puedo especificar un directorio "recursos" para obtener recursos. En uno de mis proyectos, mi pom pom que se extiende estupendo, y me gustaría añadir un recurso adicional. Probé:

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

Pero que resulta en solamente additionalDir estar en los recursos y no incluye los recursos del super pom. ¿Hay una manera de ampliar los recursos del super pom?

¿Fue útil?

Solución

Se espera que el comportamiento que has descrito.

Recuerde que su súper POM es heredera de Maven por defecto POM y casi cualquier plugin que se define en su pom anula efectivamente el ajuste en el POM defecto. A modo de ejemplo, para habilitar el filtrado en el recurso por defecto, tiene que especificar la ruta en su POM. Esto se hace:

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

No es esto:

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

El directorio por defecto no lo hace burbujear para usted, incluso si ha especificado allí. Puede haber un MOJO especial para que lo haga por usted, pero no pude encontrar uno.

Otros consejos

Vea construir-helper-maven-plugin de href="http://mojohaus.org/build-helper-maven-plugin/usage.html" rel="nofollow noreferrer"> página el uso de

Sí, experto anula los recursos del POM padres cuando la redefinición de la nueva sección de recursos.

Sin embargo, una forma sencilla de añadir recursos es a

  1. Eliminar la sección de recursos de su POM
  2. Mostrar efectiva POM
  3. Copia los recursos de su POM efectiva en su proyecto
  4. Reemplazar rutas absolutas con los relativos
  5. Añadir sus recursos adicionales

Sé que esta pregunta es bastante viejo por ahora, pero tal vez alguien se encuentra este útil:

Puede hacerlo fácilmente utilizando el recurso de plugin experto.

Básicamente, lo que hace por defecto (la invocación de los recursos: meta recursos) se está moviendo el contenido de todos los directorios listados en la sección de construcción / recursos utilizando el filtro declarado en el ${project.build.outputDirectory} Si ahora quieres añadir algunos recursos adicionales sin influir en estas secciones, sólo tiene que mover los recursos allí mismo. Un no, esto no significa arrastrar y dejar caer allí.

Los Maven Resources Pluginprovides un llamado resources:copy-resources objetivo que hace exactamente eso para usted: Hacer frente archivos utilizando filtros de un lugar a otro, o como dice el plug-in doc:

  

Puede utilizar la copia de recursos mojo copiar recursos que no están en la disposición experto predeterminada o no declaradas en el elemento de construcción / recursos y adjuntarlo a una fase

La ventaja obvia en comparación con la acumulación de ayuda, que se sugiere en otras soluciones, es que, mientras que la acumulación de ayuda sólo es capaz de actuar durante la fase de generate-sources, el complemento de recursos funciona en cualquier fase. (Aunque sería conveniente para ejecutarlo antes de la etapa de envasado)

Se proporciona un ejemplo sobre cómo utilizar este aquí , como parte de la página del proyecto plugins.

Lo que esto hace es hacer frente al contenido del directorio de recursos que no figuran "src/non-packaged-resources" en "${basedir}/target/extra-resources". Pero desde el plugin frasco (que crea el archivo JAR), básicamente, crea un archivo zip del directorio "${project.build.outputDirectory}", es posible que desee ponerlo allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top