Kotlin no-args plugin doesn't work with Maven

Viewed 256

I want to add no-arg constructor for Kotlin class in Spring Boot app. I followed these instructions and have next configuration.

Version of Kotlin: 1.5.30.

pom.xml

  <plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <configuration>
      <args>
        <arg>-Xjsr305=strict</arg>
      </args>
      <jvmTarget>11</jvmTarget>
      <compilerPlugins>
        <plugin>spring</plugin>
        <plugin>jpa</plugin>
        <plugin>all-open</plugin>
        <plugin>no-arg</plugin>
      </compilerPlugins>
      <pluginOptions>
        <option>all-open:annotation=javax.persistence.Entity</option>
        <option>all-open:annotation=javax.persistence.MappedSuperclass</option>
        <option>all-open:annotation=javax.persistence.Embeddable</option>
        <option>no-arg:annotation=com.abc.xyz.NoArg</option>
      </pluginOptions>
    </configuration>
    <dependencies>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-noarg</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-allopen</artifactId>
        <version>${kotlin.version}</version>
      </dependency>
    </dependencies>
  </plugin>

NoArg Annotation

@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class NoArg

Target Class

@NoArg
class DemoClass(
  val type: String,
  val title: String,
)

But when I try to invoke val demoClass = DemoClass() in test got next error:

Kotlin: No value passed for parameter 'type'
Kotlin: No value passed for parameter 'title'

Maybe some tweaks are required in IDEA?

0 Answers
Related