Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在java中的构建时添加注释吗?_Java_Annotations_Annotation Processor_Build Time - Fatal编程技术网

可以在java中的构建时添加注释吗?

可以在java中的构建时添加注释吗?,java,annotations,annotation-processor,build-time,Java,Annotations,Annotation Processor,Build Time,我正在寻找一种在构建期间向字段添加注释的方法。是否可以在生成期间修改“.class”文件内容? 就我而言 Class A{ x; y; } 我有不同的客户代码库。有些客户只需要对x字段进行注释,有些客户只需要对y字段进行注释。因此,我希望在构建期间添加注释。如果您想使用maven或ant修改.java文件或任何其他文件,您可以调用外部程序/脚本来修改文件 Maven pom.xml示例: <plugin> <artifactId>exec-maven-plugin&

我正在寻找一种在构建期间向字段添加注释的方法。是否可以在生成期间修改“.class”文件内容? 就我而言

Class A{
x;
y;
}

我有不同的客户代码库。有些客户只需要对x字段进行注释,有些客户只需要对y字段进行注释。因此,我希望在构建期间添加注释。

如果您想使用maven或ant修改.java文件或任何其他文件,您可以调用外部程序/脚本来修改文件

Maven pom.xml示例:

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>1234</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>${basedir}/scripts/modifyfiles.sh</executable>
      </configuration>
    </execution>
  </executions>
</plugin>

execmaven插件
org.codehaus.mojo
1234
生成源
执行官
${basedir}/scripts/modifyfiles.sh
蚂蚁:

<target name="run">
   <exec executable="name-of-executable">
      <arg value="${arg0}"/>
      <arg value="${arg1}"/>
   </exec>
</target>

另外,您必须编写一个外部脚本(创建一个可运行的jar、python、shell脚本、exe…)来完成您想要做的事情,比如读取所有的.java文件、查找字符串模式、将字符串放在上面一行


这样做,每次编译源代码之前都会调用脚本。

如果要使用maven或ant修改.java文件或任何其他文件,可以调用外部程序/脚本来修改文件

Maven pom.xml示例:

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>1234</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>${basedir}/scripts/modifyfiles.sh</executable>
      </configuration>
    </execution>
  </executions>
</plugin>

execmaven插件
org.codehaus.mojo
1234
生成源
执行官
${basedir}/scripts/modifyfiles.sh
蚂蚁:

<target name="run">
   <exec executable="name-of-executable">
      <arg value="${arg0}"/>
      <arg value="${arg1}"/>
   </exec>
</target>

另外,您必须编写一个外部脚本(创建一个可运行的jar、python、shell脚本、exe…)来完成您想要做的事情,比如读取所有的.java文件、查找字符串模式、将字符串放在上面一行


这样做,每次编译源代码之前都会调用脚本。

为什么要这样做?通过一些外部配置,您可能更容易实现相同的效果。我们在谈论什么注释?外部配置意味着什么?我想向特定于客户的字段添加国有化注释。我不是Hibernate用户,但我认为您可以使用XML文件覆盖注释(对于不同的客户,您可以使用不同的版本)。为什么要这样做?通过一些外部配置,您可能更容易实现相同的效果。我们在谈论什么注释?外部配置意味着什么?我想向特定于客户的字段添加国有化注释。我不是Hibernate用户,但我认为您可以使用XML文件覆盖注释(您可以为不同的客户提供不同的版本)。