def execute(self): if self.goal not in JvmPrepCommand.goals(): raise AssertionError( 'Got goal "{}". Expected goal to be one of {}'.format( self.goal, JvmPrepCommand.goals())) targets = self.context.targets(postorder=True, predicate=self.runnable_prep_cmd) compile_classpath = self.context.products.get_data('compile_classpath') classpath_products = self.context.products.get_data( 'runtime_classpath', compile_classpath.copy) with self.context.new_workunit(name='jvm_prep_command', labels=[WorkUnitLabel.PREP ]) as workunit: for target in targets: distribution = JvmPlatform.preferred_jvm_distribution( [target.platform]) executor = SubprocessExecutor(distribution) mainclass = target.payload.get_field_value('mainclass') args = target.payload.get_field_value('args', []) target_jvm_options = target.payload.get_field_value( 'jvm_options', []) cp = list( ClasspathUtil.classpath(target.closure(), classpath_products)) if not cp: raise TaskError( 'target {} has no classpath. (Add dependencies= parameter?' .format(target.address.spec)) self.context.log.info('Running prep command for {}'.format( target.address.spec)) returncode = distribution.execute_java( executor=executor, classpath=cp, main=mainclass, jvm_options=target_jvm_options, args=args, workunit_factory=self.context.new_workunit, workunit_name='run', workunit_labels=[WorkUnitLabel.PREP], ) workunit.set_outcome( WorkUnit.FAILURE if returncode else WorkUnit.SUCCESS) if returncode: raise TaskError( 'RunJvmPrepCommand failed to run {}'.format(mainclass))
def execute(self): if self.goal not in JvmPrepCommand.goals(): raise AssertionError('Got goal "{}". Expected goal to be one of {}'.format( self.goal, JvmPrepCommand.goals())) targets = self.context.targets(postorder=True, predicate=self.runnable_prep_cmd) compile_classpath = self.context.products.get_data('compile_classpath') classpath_products = self.context.products.get_data('runtime_classpath', compile_classpath.copy) with self.context.new_workunit(name='jvm_prep_command', labels=[WorkUnitLabel.PREP]) as workunit: for target in targets: distribution = JvmPlatform.preferred_jvm_distribution([target.platform]) executor = SubprocessExecutor(distribution) mainclass = target.payload.get_field_value('mainclass') args = target.payload.get_field_value('args', []) target_jvm_options = target.payload.get_field_value('jvm_options', []) cp = list(ClasspathUtil.classpath(target.closure(), classpath_products)) if not cp: raise TaskError('target {} has no classpath. (Add dependencies= parameter?' .format(target.address.spec)) self.context.log.info('Running prep command for {}'.format(target.address.spec)) returncode = distribution.execute_java( executor=executor, classpath=cp, main=mainclass, jvm_options=target_jvm_options, args=args, workunit_factory=self.context.new_workunit, workunit_name='run', workunit_labels=[WorkUnitLabel.PREP], ) workunit.set_outcome(WorkUnit.FAILURE if returncode else WorkUnit.SUCCESS) if returncode: raise TaskError('RunJvmPrepCommand failed to run {}'.format(mainclass))
def goals(): return list(JvmPrepCommand.goals() + ['jooq'])
def goals(): return list(JvmPrepCommand.goals() + ['jooq'])