gpt4 book ai didi

java - 检查 Java 代码是否在 Maven 插件中运行

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

我正在编写一个基于 Xtext 的代码生成器,可以调用:

  • 直接(使用main(String[])方法)
  • 在 Eclipse 中(作为 Eclipse 代码生成器插件)
  • 通过'xtext-maven-plugin'

现在我必须解决一些特定于 Maven 的问题。为此,我需要知道我的代码是否在 Maven 中运行。

我的第一个想法是像这样检查 maven.home 系统属性:

if (System.getProperty("maven.home") != null) {
// In Maven
}

有更好的方法吗?

最佳答案

除非您编写了一个 Maven 插件,并且您的代码是该 Maven 插件的一部分,并且您通过将您的代码添加到 build/plugins/plugin 区域下的 pom.xml 来配置该代码,否则您很可能只使用 Maven 进行编译.

检查环境变量不会告诉您是否“在 maven 插件中”,因为即使 maven 未运行,环境变量也存在。要查看您是否“在 maven 插件中”,您需要让 maven 进行依赖注入(inject)并查看它是否失败(这是通过 plexus 容器完成的,如果您不明白我在说什么,那么您又不是在 Maven 插件中)。

我 99% 确定您的代码在请求 maven 编译时会失败。这可能是因为您的编译器配置要求比您使用的 IDE 更严格。如果是这样,最好的答案是修复您的代码以符合更严格的 Maven 要求;因为通常会制定严格的要求以确保代码在更多场景中正常运行。

我还会检查您的 Maven 构建配置 (pom.xml),看看它是否使用与您的 IDE 相同的 Java 版本。有时,当您配置 IDE 时,您选择的编译级别(例如 java 1.8)与您的 maven pom.xml 将使用的编译级别(例如 Java 1.7)不同。

关于java - 检查 Java 代码是否在 Maven 插件中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395438/

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