def java_options(self): if not self._java_options: total = JavaOptionsInfo() total.source_level = self.java_options_info.source_level total.target_level = self.java_options_info.target_level total.compile_args = self.java_options_info.compile_args total.test_env_vars = dict(self.java_options_info.test_env_vars) total.test_jvm_args = list(self.java_options_info.test_jvm_args) pom = self.parent if pom: total.source_level = total.source_level or pom.java_options.source_level total.target_level = total.target_level or pom.java_options.target_level total.compile_args = pom.java_options.compile_args + total.compile_args total.test_env_vars.update(pom.java_options.test_env_vars) total.test_jvm_args.extend(pom.java_options.test_jvm_args) total.compile_args = self._dedup_compile_args(total.compile_args) total.compile_args = self._correct_prefixes(total.compile_args) self._java_options = total return self._java_options