Vaadin:如何在战争中加入META-INF /服务?

jav*_*csw 7 java war maven-3 maven vaadin7

我有一个Vaadin 7 maven web项目,它有一些注释可以创建服务定义META-INF/services.

我将其添加到pom中以便处理注释:

<!-- 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>
Run Code Online (Sandbox Code Playgroud)

文件显示在内,target/classes/META-INF/services但没有进入最后的战争.

我尝试将文件夹添加到maven-war-plugin,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

但是大部分的Vaadin文件并没有进入战争,也没有用.任何的想法?

jav*_*csw 2

我最终使用了这个不相关的答案中的方法:Maven:在 war build 的资源文件夹中包含文件夹

这就是我最终所做的:

             <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>
Run Code Online (Sandbox Code Playgroud)

基本上将 services 文件夹添加为资源并将其放置在最终战争的正确位置。