我有一个maven项目,该项目使用wsgen从已编译的Java类生成XSD文件。
问题是我想将生成的文件作为资源添加到jar中。但是由于该resource
阶段在该process-classes
阶段之前运行,所以无法添加它们。
有没有办法告诉Maven添加在该process-classes
阶段生成的其他资源?
我建议将XSD文件的输出目录定义为target /
classs(可能带有一个补充子文件夹,该子文件夹稍后将在打包阶段打包到jar中。这可以通过使用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 阶段来确保将资源正确打包。
我使用kapt编写了一个代码生成器,并在使用maven编译kotlin的项目中使用它。 我发现kapt生成器是在Kotlin的编译阶段之后调用的,这使得我无法在同一个项目中使用kotlin中生成的代码。 然而,如果我在同一个项目中引用Java内部生成的类,它就能很好地工作。这是因为java编译阶段在kotlin的生成阶段之后。 我已经在maven配置中指定了静态编程语言编译目标之前的kapt目标(
我在单元测试用例中使用Mockito和Power Mockito。当我运行配置文件代码时,我能够生成jacoco报告,但是 当我在测试阶段试图生成Jacoco报告时,我遇到了错误 错误[错误]无法执行目标组织。jacoco:jacoco maven插件:0.8.2:project testproject api上的报告(默认报告):生成jacoco报告时出错:创建报告时出错:分析d:\worksp
我正在与Maven一起构建一个GWT项目。我为gwt编译添加了gwt maven插件,如下所示: 我在executions标签下包含了编译目标,希望在编译阶段执行GWT编译。但GWT编译仅在包阶段或运行mvn package命令时执行 即使为gwt-dev依赖项设置了提供的作用域,我也会收到如下所示的警告。 1) 为什么在编译阶段不执行GWT编译 2)我应该为GWT(GWT用户、GWT开发人员)依
项目无法执行maven生命周期映射的两个生命周期阶段: null
我已经用maven创建了一个java项目。在我的项目(src/main/resources下)中,有一些资源文件我想复制到目标/类中。 我在pom xml中添加了以下行: 当我运行mvn资源时:通过命令行获取的资源文件正在复制到目标/类中(因此生命周期中的资源阶段正在工作)。然而,当我在cmd中输入mvn install:install时,资源文件并没有被复制到目标/类中。 我得到: 生命周期中的
我有一个项目,它使用编译的方面并在编译时编织它们。我想添加Lombok,但不幸的是,Lombok不支持AJC。由于该项目本身没有任何方面的源代码,因此在使用Javac Lombok编译之后,我将AspectJ Maven插件配置为进行编译后编织。 以下是AspectJ Maven插件的配置: 它在Maven编译器插件编译后立即附加到编译阶段。这样Lombok Javac将首先被调用,然后AJC将对