我一直在绞尽脑汁研究maven插件的执行顺序和生成类的打包。
我需要从XSD生成带有注释的pojos,为此我使用maven-jaxb2-plugin,它消耗一个binding.xjb(一个由要注释的完全分类的字段名组成的xml文件)文件并将注释添加到生成的pojos。除此之外,我还有一个从映射文件动态生成binding.xjb文件的机制,目的是只提供yaml文件格式的映射,而不是binding.xjb,因为维护yml文件很容易,为此我有一个独立的Spring启动应用程序,它读取yaml文件并生成binding.xjb文件,我正在使用exec-maven-plugin在maven-jaxb2-plugin之前调用我的应用程序,以便binding.xjb提前生成,并可以由maven-jaxb2-plugin用来注释pojos。
我知道为了维护插件执行顺序,它们必须在同一阶段声明,以避免麻烦,我正在使用进程类阶段,并在此帮助下生成带有注释的pojos。
但问题是生成的类没有打包到jar中,我也希望排除我的绑定。从生成的jar文件生成xjb逻辑。
我的构建配置如下所示:-
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.abc.GeneratorApp</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>${maven-jaxb2-plugin.version}</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<extension>true</extension>
<args>
<arg>-XautoNameResolution</arg>
<arg>-Xannotate</arg>
</args>
<schemas>
<schema>
<fileset>
<directory>src/main/xsd</directory>
<includes>
<include>PATH-TO-XSD/my.xsd</include>
</includes>
</fileset>
</schema>
</schemas>
<bindings>
<binding>
<fileset>
<directory>src/main/xsd</directory>
<includes>
<include>*.xjb</include>
</includes>
</fileset>
</binding>
</bindings>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.4</version>
</plugin>
<plugin>
<groupId>com.abc.xyz</groupId>
<artifactId>my-api</artifactId>
<version>1.2.3</version>
</plugin>
</plugins>
</configuration>
</plugin>
</plugins>
有人能指出我犯的错误,或者提供解决这个问题的建议,谢谢。
代码生成通常在生成源阶段完成。不确定您为什么喜欢进程类。
插件在同一阶段的顺序实际上应该是它们在pom中列出的顺序。xml。因此,应该在执行maven-jaxb2-plugin之前执行exec-maven-plugin。我觉得Maven 3的早期版本中有这个bug,应该在3.0.3中修复。
如果没有任何帮助,请将exec-maven-plugin
移动到更早的阶段,例如生成源
和maven-jaxb2-plugin
到进程源
。
我正在尝试使用hibernate3 maven插件和sql maven插件。我的目标是我可以运行“maven generate sources”,它应该做到: 1) hibernate3 maven插件生成初始化。sql 2) sql maven插件执行它(一个其他脚本) 我的配置的问题是:如果我运行生成源只有hibernate3-maven-plugin它的工作原理和生成thinit.sql但我
我正在尝试使用shade插件创建一个可执行JAR的简单示例。我逐行浏览了这里的示例,在我的机器上似乎根本没有执行shade插件。 我的阴影POM代码是: 运行“mvn包”后,创建的JAR不包含任何项目依赖项。从调试跟踪来看,似乎从未调用过shade插件。要让shade发挥其魔力,是否还需要一些额外的步骤? 编辑:示例的完整代码位于https://github.com/hutch31/maven-s
使用统一的控制脚本来初始化其他脚本 一般我都会有一个 Game.ts 的脚本作为总的控制脚本,假如我还有 Player.ts, Enemy.ts, Menu.ts 三个组件,那么他们的初始化过程是这样的: // Game.ts import { _decorator, Component, Node } from "cc"; const { ccclass, property } = _decor
我是maven的新手,学习如何以及何时在插件中执行阶段/目标 假设我的pom中有以下代码片段 现在,如果我执行mvn安装,安装之前的modello的所有阶段(以及每个阶段对应的所有目标)都将执行。正当 但是,如果进行以下修改以引入特定目标,则只会执行一个目标,即java目标(因为它位于安装阶段之前的生成源代码阶段)。对吗?
在我当前的项目设置中,maven shade插件的执行非常不稳定。这个插件看起来像是在我构建父模块之后执行的,但是在那个实例中执行之后,它在独立构建子模块时无法执行。 我的父母是 还有孩子pom 以及在具有上述pom的子模块上运行“安装”目标时的构建输出 如您所见,尽管在< code >中定义了执行,maven shade插件并没有执行
问题内容: 我有一个抽象基类,用作我的单元测试(TestNG 5.10)的基础。在该类中,我将初始化测试的整个环境,设置数据库映射等。此抽象类具有一个带有注释的方法,该方法可以进行初始化。 接下来,我用具有方法和方法的特定类扩展该类。这些方法对环境进行类特定的初始化(例如,将一些记录放入数据库中)。 如何执行带注释的方法的特定顺序?我需要先执行抽象基类中的那些,然后再执行扩展类中的那些。 例: 预