gpt4 book ai didi

maven - Kotlin Maven 插件中如果为空则跳过

转载 作者:行者123 更新时间:2023-12-04 12:53:44 28 4
gpt4 key购买 nike

我们在最顶层的项目 POM 中启用了 Kotlin Maven 插件,如下所示:

<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>

<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>

<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>

ATM,这个项目中只有少数模块有 Kotlin 源代码。 (这个项目大约有 50 个模块。)这个想法是大多数最终都会有 Kotlin 代码,我们不想在每个项目的基础上连接起来。我们想配置一次,然后忘记它。

这可行,除了我们在大多数模块的构建中收到此警告:
[INFO] Kotlin Compiler version 1.0.2
[WARNING] No sources found skipping Kotlin compile

JAR 插件也有这个问题。该插件有一个配置选项,允许我们这样做:
<configuration>
<skipIfEmpty>true</skipIfEmpty>
</configuration>

这关闭了该插件的类似警告。 Kotlin 编译器插件似乎没有任何这样的配置选项。

所以,我的问题是:
  • 是否存在我们忽略的配置选项?
  • 我们是否应该以不同的方式配置 Kotlin 编译器插件以避免出现此警告?

  • 蒂亚!

    最佳答案

    处理此类事情的默认方法是通过 pluginManagement 定义您在项目父级中的配置。这可以防止它被所有不正确的模块继承。与使用 Kotlin 的模块相比,您需要在 pom 文件中添加几行:

    <build>
    <plugins>
    <plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>

    如果 kotlin-maven-plugins 包含这样的选项,我无法告诉你,因为我没有找到它的源代码,也不存在包含所有默认值和选项等的 maven 生成的站点,但事实并非如此(不是很好)..

    或者另一种解决方案是更改具有自己生命周期的 kotlin-maven-plugin,这意味着更改插件的代码......并且只需更改 <packaging>kotlin</packaging>这些模块中......这是原作者要做的工作......

    如果您需要添加选项 <skipIfEmpty>..</skipIfEmpty>对于 maven-jar-plugin 这听起来也是错误的......

    关于maven - Kotlin Maven 插件中如果为空则跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242732/

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