gpt4 book ai didi

java - 我如何在 Maven 中组织源代码生成?

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:35 25 4
gpt4 key购买 nike

我有一个 Maven 插件,它为我的 java 项目生成源代码并将它们放入“target/generated-sources”文件夹中。我在编译时需要这些资源。我想在修改它时将它们放在我的项目中,已经生成了。当然,我想将它们放入“src”文件夹下的正确文件夹中,而不是放入“target/generated-sources”中。我如何使用 Maven 来组织它?

换句话说,我希望能够:

  1. 通过运行我的特殊源代码生成插件的一些目标来生成我需要的源代码(已经完成,源代码有我指定的包)

  2. 将这些生成的源移动到标准 Maven 布局的“src/main/java/...”文件夹。

  3. 将它们从“target/generated-sources”文件夹中删除,否则 mvn clean install 命令会引发错误,提示我有“重复类”。事实上,如果我只是将生成的源从目标复制到 src - 我必须使用相同名称和包的类,尽管其中一个位于目标文件夹中。

哪些 Maven 插件可以帮助解决这个问题?我想这是一项典型的任务。

最佳答案

maven 中的标准解决方案是将所有源代码生成到target/generated-sources,所有源代码从target/generated-sources 和从src 编译成target/classes 并合并到目标jar

插件不应该接触 src 目录下的文件,因为这些文件由版本控制系统(例如 git)管理。

如果插件写得不好,来自target/generated-sources的源文件没有自动编译成target,那么使用目标build-helper:add-来源 来自 Build Helper Maven Plugin正如@James Kingsbery 所说。

maven-com4j-plugin源码有注释:

/**
* Directory in which to create the Java COM wrapper files. This directory
* will be added to the Maven project's compile source directory list and
* will therfore be auto-compiled when the Maven compile phase is run.
*
* @parameter expression="${outputDirectory}"
* default-value="${project.build.directory}/generated-sources/com4j/java"
*/

您的问题更重要的部分和解决方案是:

This directory will be added to the Maven project's compile source directory list and will therfore be auto-compiled when the Maven compile phase is run

因此,生成的源代码应该自动编译并归档到构建的jar中。

关于java - 我如何在 Maven 中组织源代码生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com