Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

338
Views
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?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

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>
about 4 years ago · Santiago Trujillo Report

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>
about 4 years ago · Santiago Trujillo Report

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.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!