Mojo添加eclipse源文件夹

Qw3ry

我写了一个生成源代码的Maven插件。这基本正常。

问题是,Eclipse无法将我生成代码的目录识别为其他源文件夹。因此,我有很多错误的说法XXX cannot be resolved to a type不过,通过命令行进行maven编译和安装可以正常工作。

首先,我通过使用解决了此问题org.codehaus.mojo.build-helper-maven-plugin这很好。但是,我不喜欢插件的用户也需要添加第二个插件。因此,我当时一看到的源代码,add-source目标build-helper-maven-plugin并决定将相关代码要做到这一点直接添加到我的插件。因此,我的插件如下所示:

@Mojo(name = "generate-sources", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
public class MyMojo extends AbstractMojo {
    @Parameter(defaultValue = "${project}", readonly = true, required = true)
    private MavenProject project;

    @Parameter(required = true)
    private File targetDirectory;

    // some more members

    @Override
    public void execute() throws MojoExecutionException {
        // generation of the sources into targetDirectory

        project.addCompileSourceRoot(targetDirectory.getAbsolutePath());
    }
}

无论是从命令行还是从Eclipse(使用Alt + F5或右键单击-> Maven->更新项目),在执行过程中都没有错误。但是,无法识别其他源目录。

我做错什么了吗?还是需要特殊的m2e连接器?目前我正在使用生命周期映射插件解决这个m2e连接器问题

<action>
    <execute>
        <runOnConfiguration>true</runOnConfiguration>
        <runOnIncremental>true</runOnIncremental>
    </execute>
</action>
米迦多

尽管您的插件向项目添加了额外的源目录,但是Eclipse无法识别该目录。您可以配置Eclipse应该执行您的目标,但是您不能告诉Eclipse添加额外的源目录。

例如build-helper某些插件可以添加额外的源目录,但是它们需要相应的m2e扩展名。没有适用于所有插件的通用m2e。

您有以下选择:

  1. 使用build-helper-maven-plugin我同意这是愚蠢的
  2. 编写自己的m2e扩展名。比选择1差很多。
  3. 将单独的maven模块用于您的插件生成的源。在这样的模块中,您可以定义<sourceDirectory>${project.build.directory}/generate-sources</..>这种分离是有意义的:生成的代码通常具有与常规代码不同的性质。
  4. 不执行任何操作,要求开发人员手动添加额外的源文件夹。看起来很原始,但是有一个优点-手动添加的源文件夹不会在[右键-> Maven->更新项目]上删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建新的Maven项目时在Eclipse中添加双源文件夹

如何将gradle生成的源文件夹添加到Eclipse项目?

在generate-sources将源文件夹添加到我的Eclipse Project中

如何在Eclipse中将源文件夹更改为测试源文件夹

Eclipse中的“源文件夹不是Java项目”错误

Eclipse中的Java资源文件夹错误

限制Eclipse中源文件夹之间的访问

源文件夹未在 Eclipse 中显示

Eclipse源文件夹与软件包

在Unity中向资源文件夹添加路径

Grails 3-添加字体资源文件夹

如何使用Gradle在Eclipse中将文件夹设置为源文件夹?

eclipse-如何从远程网络驱动器添加现有的源文件夹

Eclipse以与源文件夹-src / main不同的颜色显示源文件夹(src / test)之一。

如何在gradle和其他资源文件夹中添加资源文件夹

如何在eclipse中的源文件夹下创建文件夹?

如何使Eclipse将.class文件存储在我存储.java源文件的Project文件夹之外的文件夹中?

Eclipse是否可以像多个源文件夹一样具有多个输出文件夹

从资源文件夹JAVA获取文件夹

如何访问IDE(eclipse)资源文件夹中的数据文件?

Eclipse中的Maven项目-在哪个文件夹中放置源文件?

如何在eclipse中添加属性文件的文件夹

如何在另一个文件夹中添加源文件

从资源文件夹添加app.js文件不是公共的

显示源文件夹中的图像

Cmake中的资源文件夹

webpack多个来源文件夹

我应该从构建路径中排除源文件夹(在Eclipse中)

Eclipse-使用父项目资源文件夹时的Maven警告