且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

maven:如何添加编译阶段后生成的资源

更新时间:2022-05-15 00:33:35

我建议将XSD文件的输出目录定义为目标/类(可能是一个补充子文件夹,它将是稍后在包装阶段打包到jar中。这可以通过使用 maven-resources来实现。 -plugin

I would suggest to define the output directory for the XSD files into target/classes (may be with a supplemental sub folder which will be packaged later during the package phase into the jar. This can be achieved by using the maven-resources-plugin.

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>process-classes</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <resources>          
                <resource>
                  <directory>${basedir}/target/xsd-out</directory>
                  <filtering>false</filtering>
                </resource>
              </resources>              
            </configuration>            
          </execution>
        </executions>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

您需要注意资源插件位于用于调用wsgen的插件之后部分。您也可以使用 prepare-package 阶段来确保资源正确打包。

You need to take care that the resources plugin is positioned after the plugin which is used to call the wsgen part. You can also use the prepare-package phase instead to make sure the resources will be correctly packaged.