Class: Mxrb::Compiler::ProjectJarBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/compiler/project_jar_builder.rb

Overview

Compiles generated/custom Java sources and writes project.jar without MxBuild or Gradle.

Constant Summary collapse

LEGACY_UNUSED_IMPORTS =
['com.mendix.webui.CustomJavaAction'].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mpr_path, deployment:, mendix_home:, java_home: nil) ⇒ ProjectJarBuilder

Returns a new instance of ProjectJarBuilder.



15
16
17
18
19
20
21
22
23
# File 'lib/mxrb/compiler/project_jar_builder.rb', line 15

def initialize(mpr_path, deployment:, mendix_home:, java_home: nil)
  @mpr_path = File.expand_path(mpr_path)
  @project_root = File.dirname(@mpr_path)
  @deployment = File.expand_path(deployment)
  @mendix_home = File.expand_path(mendix_home)
  @version = SourceModel.read(@mpr_path).version
  @java_major = Runtime::Toolchain.new(@mpr_path).plan.java_version
  @java_home = Runtime::JavaLocator.resolve(@java_major, configured: java_home)
end

Instance Method Details

#buildObject



25
26
27
28
29
30
31
32
33
# File 'lib/mxrb/compiler/project_jar_builder.rb', line 25

def build
  validate_java!
  output = File.join(@deployment, 'model', 'bundles', 'project.jar')
  JavaProxyGenerator.new(@mpr_path, project_root: @project_root).generate
  sources = Dir.glob(File.join(@project_root, 'javasource', '**', '*.java')).sort
  classpath = classpath_entries
  compile_and_package(output, sources, classpath)
  result(output, sources, classpath)
end