Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

342
Vistas
Vaadin: ¿Cómo agregar META-INF/servicios a la guerra?

Tengo un proyecto web maven de Vaadin 7 que tiene algunas anotaciones que crean una definición de servicio en META-INF/services .

Agregué esto al pom para que se procesen las anotaciones:

 <!-- Run annotation processors on src/main/java sources --> <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>process</id> <goals> <goal>process</goal> </goals> <phase>generate-sources</phase> </execution> </executions> </plugin>

Los archivos se muestran dentro de target/classes/META-INF/services pero no llegan a la guerra final.

Intenté agregar la carpeta al complemento maven-war de esta manera:

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <packagingIncludes>target/classes/*</packagingIncludes> </configuration> </plugin>

Pero la mayoría de los archivos de Vaadin no llegan a la guerra y no funciona. ¿Alguna idea?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Consulte https://maven.apache.org/plugins/maven-war-plugin/usage.html

Parece que su carpeta META-INF está en el directorio src/main/resources .

Normalmente, al crear un WAR , crearía un directorio src/main/webapp donde puede tener su WEB-INF , META-INF y otras carpetas requeridas.

 |-- src | `-- main | |-- java | | `-- com | | `-- example | | `-- projects | | `-- SampleAction.java | |-- resources | | `-- images | `-- webapp | |-- META-INF | |-- WEB-INF

Todo lo que se encuentre en la carpeta de su webapp se copiará en el directorio raíz en WAR .

La ruta a su webapp también se puede configurar usando la propiedad warSourceDirectory

Para su escenario: fuentes generadas

Obviamente, no desea mantener sus fuentes generadas en su carpeta src/* y no desea versionarlo.

Puede evitar esto agregando un filtro de ignorar a sus metadatos de control de versiones; o creando un enlace simbólico; o usar copy-resources como dijeron algunas respuestas anteriores, pero no recomendado.

Puede lograr esto agregando una configuración de webResources para copiar las fuentes generadas de la carpeta de target por

Consulte http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>${project.build.directory}/target/generated-sources</directory> <targetPath>META-INF</targetPath> <!-- introduced in plugin v 2.1 --> <includes> <include>*.class</include> </includes> </resource> </webResources> </configuration> </plugin>
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes probar esto:

 <execution> <id>process</id> <phase>generate-sources</phase> <goals> <goal>process</goal> </goals> <configuration> <finalName>${projectId}</finalName> <outputDirectory>relative project directory</outputDirectory> <includes> <include>path</include> </includes> </configuration> </execution>
over 4 years ago · Santiago Trujillo Denunciar

0

Terminé usando el enfoque de esta respuesta no relacionada: Maven: incluya la carpeta en la carpeta de recursos en la compilación de guerra .

Esto es lo que terminé haciendo:

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <webResources> <resource> <directory>target/classes/META-INF/services</directory> <includes> <include>*.*</include> </includes> <targetPath>META-INF/services</targetPath> </resource> </webResources> </configuration> </plugin>

Básicamente, agregó la carpeta de servicios como un recurso y la colocó en el lugar correcto de la guerra final.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda