当前位置: 首页 > 知识库问答 >
问题:

为什么maven不从测试类生成源代码?

夏建木
2023-03-14

我有一些使用Querydsl进行单元测试的测试类。Querydsl通常会生成查询类型的类,但如果类位于测试目录中,则不会生成该类。只要我把文件放入src/main并用maven编译,它就能正常工作。因为我只在测试中使用这些类,所以我不想把这些文件放在这个目录中。有人能帮我吗?
我的目录结构
src/main/java
src/main/resources
src/test/java/
src/test/resources

生成Querydsl使用的查询类型的Maven APT插件

            <plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>apt-maven-plugin</artifactId>
            <version>1.1.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/generated-test-sources/java</outputDirectory>
                        <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.querydsl</groupId>
                    <artifactId>querydsl-apt</artifactId>
                    <version>4.1.0</version>
                </dependency>
            </dependencies>
        </plugin>

共有1个答案

曹涵润
2023-03-14

可以跨越同样的问题。我找到了这个解决方案来为测试源生成'Q'实体。诀窍是使用插件的测试过程目标。将它添加到generate-test-sources阶段会在正确的时间生成它们(test-compile)。

        <plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>apt-maven-plugin</artifactId>
            <version>${apt.maven.plugin.version}</version>
            <executions>
                <execution>
                    <id>generate-source-entities</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/generated</outputDirectory>
                        <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                    </configuration>
                </execution>
                <execution>
                    <id>generate-test-entities</id>
                    <phase>generate-test-sources</phase>
                    <goals>
                        <goal>test-process</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/generated</outputDirectory>
                        <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                    </configuration>
                </execution>
            </executions>
        </plugin>

注这将生成主源和测试源的实体。

 类似资料:
  • 我对jaxb2 maven插件版本2.4有以下配置 但是当我运行时,不会生成任何类。 我能忽略什么? 我已经在这里粘贴了一个wsdl 编辑 由于提到这可能是一个可能的重复,我将插件降级为版本并将配置更改为以下,仍然没有生成类。 完整的pom在这里,因为站点抱怨代码太多 清洗后,它最终可与版本一起使用。为什么版本不起作用?

  • Maven编译器插件没有将生成的类(mapstruct中的映射器)复制到target\generated test sources\test annotation。目录已创建,但为空。生成的类仅复制到目标\生成的源\注释。 这是我的maven编译器插件配置: 谢谢你!

  • 问题内容: 我有一个在目录下生成源的插件。它被连接到generate- sources阶段,如下所示: 问题是,当我使用文件时,文件将不会放在罐子中。我在那里看到所有文件,但没有。 我阅读了有关此问题的所有问题,但不知道如何解决该问题。我正在使用Maven3.0.x。 问题答案: build-helper插件确实解决了这个问题。感谢@Joe的评论。

  • 问题内容: 我正在忙于使用Maven将现有项目从Ant构建转换为Ant构建。该构建的一部分包括使用hibernate hbm2java工具将.hbm.xml文件的集合转换为Java。这是用于执行此操作的Ant脚本的片段: 我在互联网上四处张望,有些人(我认为)似乎在Maven中使用Ant,而另一些人使用Maven插件。我宁愿避免混合使用Ant和Maven。任何人都可以建议一种方法来执行此操作,以便

  • 问题内容: 通常,应在目标目录中创建生成的源。但是,如何处理仅用于测试的类?我不希望这些类打包在我的jar中。有解决这种情况的通用方法吗? 问题答案: 使用maven build helper插件的目标将生成的测试源文件添加到build-> http://mojo.codehaus.org/build-helper-maven-plugin/add-test-source- mojo.html 它

  • 我已经尝试了几种方法,但从未进行过测试。在我点击build之后,我已经使用Nunit编写了一个测试,我不确定我需要做什么。