Solon

问题:编译或打包怎样保持参数名不变?

</> markdown

之所有这个问题,是因为 java 编译默认会把参数名变掉(类似于混淆)。引入 solon-parent 可避免此问题。

<!-- 注意:引入 solon-parent,可省去很多细节配置 -->
<parent>
    <groupId>org.noear</groupId>
    <artifactId>solon-parent</artifactId>
    <version>${solon.version}</version>
    <relativePath />
</parent>

也有同学不想引入的,可参考下面手动开启编译参数!

1、Java 项目

  • Java maven 项目
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <compilerArgument>-parameters</compilerArgument> 
        <source>${java.version}</source>
        <target>${java.version}</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>
  • Java gradle 项目
compileJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << "-parameters"
}

2、Kotlin 项目

  • kotlin maven 项目
<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>${kotlin.version}</version>
    <configuration>
        <args>
            <arg>-java-parameters</arg>
        </args>
    </configuration>
</plugin>
  • Kotlin gradle 项目

在 build.gradle 的 compileKotlin 配置:

compileKotlin {
    kotlinOptions {
        jvmTarget = '1.8' 
        javaParameters = true //保持参数名不变
    }
}