当前位置: 首页 > 面试题库 >

预处理源代码作为Maven构建的一部分

燕博文
2023-03-14
问题内容

我有很多Java源代码,需要自定义预处理。我想摆脱它,但是现在不可行,所以我坚持了下来。鉴于我有一个不幸的问题,而这个问题本来不应该存在的,那么我该如何使用Maven解决这个问题呢?

(对于整个故事,我要用一个maven替换一个基于python的构建系统,因此请一次进行一次改进。修复非标准源代码会更加困难,并且将在以后发布。)

是否可以使用任何现有的Maven插件在编译时实际更改源文件?(显然,将原始的未经处理的代码留给了自己)

明确地说,通过预处理,我的意思是与天线或C编译器将对代码进行预处理的意义相同,而按照习惯,我的意思是它是完全专有的,根本不像C或天线预处理那样。


问题答案:

这是非常可行的,过去我做过非常类似的事情。

我的一个项目示例,我使用antrun插件执行外部程序来处理源:

  <build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <id>process-sources</id>
          <phase>process-sources</phase>
          <configuration>
            <tasks>
               <!-- Put the code to run the program here -->
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

请注意我在其中指示运行该阶段的标签。Maven的生命周期文档在这里。另一个选择是实际编写自己的Maven插件来执行此操作。它稍微复杂一点,但也是可行的。您仍将按照与我在此处记录的内容类似的方式进行配置。



 类似资料:
  • 在你的代码合并,压缩或编译后,保持客户端代码可读性和可调试性。使用Source Maps(源码映射)将源代码映射到已编译的代码。 TL;DR 使用Source Maps(源码映射)将压缩代码映射到源代码。然后,您可以在其原始源代码中读取和调试编译的代码。 仅使用能够生成Source Maps(源码映射)的预处理器。 验证您的web 服务器是否可以为Source Maps(源码映射)提供服务。 开始

  • 问题内容: 如果存在某些错误,是否有可能以某种方式强迫Maven失败?现在,我必须运行目标以生成和报告。我想使其达到目标,如果checkstyle出现错误,则需要构建才能失败。这有可能实现吗? 现在我有报告的Maven块: 问题答案: 您需要绑定到Maven生命周期阶段(例如validate)并设置为true。 就像是:

  • 我正在将我的java 6代码升级到java 7。已将JAVA_HOME更新为OS X 10.9上的JDK 1.7。代码还没有使用任何Java7特性。 当我运行构建“mvn clean install”时,构建中断,没有任何有用的错误消息。 生成成功,源代码=1.6

  • 今天我有一个多年来一直萦绕在我心头的问题<在java中有以下评价: 我在我的程序中使用这段代码来评估b[0]和b[1]不同布尔值的术语,但这在这里一点也不重要。 目前我正在将评估写入源代码,让程序运行并观看命令行中的结果。 现在我想知道如何在命令行中实现计算。我希望能够在命令行中输入一个评估术语,用BufferedReader等读取它,而不是将其写入源代码。 有什么办法吗?我认为可以使用一些变量别

  • 没有任何好的插件来使用Maven构建本机代码。native-maven-plugin是一个非常严格的构建系统,除其他外,这使得调试结果的二进制文件变得困难。您必须手动将本机Maven-Plugin构建系统与用于调试的本机IDE同步。 Maven没有替换部署的pom.xml文件中的变量:MNG-2971、MNG-4223。这意味着库必须在每个Maven配置文件中声明一次特定于平台的依赖关系(而不是声

  • 问题内容: 在我的测试计划中,我有JDBC PreProcessor,它捕获了我要保存到变量中的单个值。然后,我想将此变量作为摘要报告的文件名的一部分重用。 我不知道创建该变量是否为时已晚,因为我总是得到字面值而不是 我也不确定是否需要使用或存储值。到目前为止,我没有运气尝试了不同的组合 然后我也不清楚应该在哪一点上将预处理器连接到第一个采样器? 这是我最新的(简短)JMX版本: 问题答案: JM