ant generate fails with language not deployed error message
Hi everyone.
I have a simple project with a very simple language. This language uses plaintextgen to generate files. It also generates for the base language (Java) and XML. In this project I also have a sandbox with models that result in the generation of Java, XML and also text (with plaintextgen). When I build the solution from MPS everything works fine, and all the files are nicely generated.
However, when I use a build solution and try to execute it via the command line, the ‘ant build’ works fine but the ‘ant generate’ fails with the following message:
[generate] 2025-02-20 20:06:00,499 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954788.
[generate] 2025-02-20 20:06:00,662 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [j.m.lang.smodel,c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-20 20:06:00,792 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-20 20:06:01,478 SEVERE - jetbrains.mps.generator.impl.plan.GenerationPlan - One of generators engaged for model HelloWorld.sandbox needs ('GENERATES INTO') missing language com.dslfoundry.plaintextgen. Please check generator HelloWorld/main
It seems that ant cannot find the com.dslfoundry.plaintextgen language.
For your information, I used the de.itemis.mps.extensions in the build (and the build solution has a dependency to de.itemis.mps.extensions.build. I am using MPS 2024.3.
I was also able to build the MPS extensions (which include plaintextgen) from source code with MPS 2024.3.
Could this issue be related to https://github.com/JetBrains/MPS-extensions/issues/235 ?
I would appreciate any help with this issue.
Thanks
- Alexandre
Please sign in to leave a comment.
Hi Alexandre, it seems that your build cannot find and load the language com.dslfoundry.plaintextgen. There can be various reasons for that, starting from the path to the language being set incorrectly, through version mismatches (e.g. using older versions of libraries with MPS 2024.3), ending with some other misconfiguration in the build scripts. It is difficult to tell just from the excerpt you posted, please post the complete build log.
Hi Sergej.
Thanks for the reply.
Here is the build log:
alexandrebraganca@Alexandres-MacBook-Pro-2 HelloWorldProj % ant generate
Buildfile: /Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj/build.xml
Trying to override old definition of datatype module
declare-mps-tasks:
fetchDependencies:
generate:
[echo] generating
[generate] 2025-02-28 17:17:03,555 WARNING - jetbrains.mps.classloading.ModulesWatcher - 1 modules are marked as invalid roots for class loading out of 304 modules totally in the CL graph
[generate] 2025-02-28 17:17:03,556 WARNING - jetbrains.mps.classloading.ModulesWatcher - de.slisson.mps.reflection.runtime: not tracked for classloading (no respective module facet or absent in a repository)
[generate] 2025-02-28 17:17:08.075 java[16946:75881] [JRSAppKitAWT markAppIsDaemon] failed. SetApplicationIsDaemon returned -50
[generate] 2025-02-28 17:17:15,685 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954788.
[generate] 2025-02-28 17:17:15,685 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954793.
[generate] 2025-02-28 17:17:15,773 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [j.m.lang.smodel,c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-28 17:17:15,860 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-28 17:17:16,102 SEVERE - jetbrains.mps.generator.impl.plan.GenerationPlan - One of generators engaged for model HelloWorld.sandbox needs ('GENERATES INTO') missing language com.dslfoundry.plaintextgen. Please check generator HelloWorld/main
[generate] (jetbrains.mps.generator.impl.GenerationFailureException): unexpected exception when applying root rule
[generate] jetbrains.mps.generator.impl.GenerationFailureException: unexpected exception when applying root rule
[generate] at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:248)
[generate] at jetbrains.mps.generator.impl.TemplateGenerator.createRootNodeByRule(TemplateGenerator.java:438)
[generate] at jetbrains.mps.generator.impl.ParallelTemplateGenerator.access$101(ParallelTemplateGenerator.java:51)
[generate] at jetbrains.mps.generator.impl.ParallelTemplateGenerator$2.run(ParallelTemplateGenerator.java:94)
[generate] at jetbrains.mps.generator.impl.GenerationTaskAdapter.run(GenerationTaskAdapter.java:44)
[generate] at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl$1.execute(ModelAccessBase.java:181)
[generate] at jetbrains.mps.smodel.CancellableReadAction.run(CancellableReadAction.java:86)
[generate] at jetbrains.mps.smodel.ReadAccessToken.runRead(ReadAccessToken.java:22)
[generate] at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl.execute(ModelAccessBase.java:178)
[generate] at jetbrains.mps.generator.impl.GenerationTaskPool$ModelReadAdapter.run(GenerationTaskPool.java:150)
[generate] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[generate] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[generate] at java.base/java.lang.Thread.run(Thread.java:1583)
[generate] Caused by: java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.lambda$couldNotBeReferenceTarget$1(GeneratorMappings.java:121)
[generate] at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.couldNotBeReferenceTarget(GeneratorMappings.java:121)
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.addOutputNodeForContext(GeneratorMappings.java:127)
[generate] at jetbrains.mps.generator.impl.AbstractTemplateGenerator.nodeCopied(AbstractTemplateGenerator.java:132)
[generate] at jetbrains.mps.generator.impl.TemplateExecutionEnvironmentImpl.nodeCopied(TemplateExecutionEnvironmentImpl.java:374)
[generate] at jetbrains.mps.generator.impl.TemplateProcessor.applyTemplate(TemplateProcessor.java:125)
[generate] at jetbrains.mps.generator.impl.TemplateProcessor.apply(TemplateProcessor.java:103)
[generate] at jetbrains.mps.generator.impl.interpreted.TemplateRootMappingRuleInterpreted.apply(TemplateRootMappingRuleInterpreted.java:73)
[generate] at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:244)
[generate] ... 12 more
[generate]
[generate] Generation failed for model 'HelloWorld.sandbox': unexpected exception when applying root rule. java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] -- -- was input node: [root] HelloWorldApp "App3"[9117264346792514080] in HelloWorld.sandbox@0
[generate] generation completed with errors in 34 ms
[generate] Error executing target jetbrains.mps.make.facets.Generate.generate
[generate] ****************************************************************************************************
[generate] 6 errors during generation:
[generate] (jetbrains.mps.generator.impl.GenerationFailureException): unexpected exception when applying root rule
[generate] jetbrains.mps.generator.impl.GenerationFailureException: unexpected exception when applying root rule
[generate] at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:248)
[generate] at jetbrains.mps.generator.impl.TemplateGenerator.createRootNodeByRule(TemplateGenerator.java:438)
[generate] at jetbrains.mps.generator.impl.ParallelTemplateGenerator.access$101(ParallelTemplateGenerator.java:51)
[generate] at jetbrains.mps.generator.impl.ParallelTemplateGenerator$2.run(ParallelTemplateGenerator.java:94)
[generate] at jetbrains.mps.generator.impl.GenerationTaskAdapter.run(GenerationTaskAdapter.java:44)
[generate] at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl$1.execute(ModelAccessBase.java:181)
[generate] at jetbrains.mps.smodel.CancellableReadAction.run(CancellableReadAction.java:86)
[generate] at jetbrains.mps.smodel.ReadAccessToken.runRead(ReadAccessToken.java:22)
[generate] at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl.execute(ModelAccessBase.java:178)
[generate] at jetbrains.mps.generator.impl.GenerationTaskPool$ModelReadAdapter.run(GenerationTaskPool.java:150)
[generate] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[generate] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[generate] at java.base/java.lang.Thread.run(Thread.java:1583)
[generate] Caused by: java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.lambda$couldNotBeReferenceTarget$1(GeneratorMappings.java:121)
[generate] at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.couldNotBeReferenceTarget(GeneratorMappings.java:121)
[generate] at jetbrains.mps.generator.impl.GeneratorMappings.addOutputNodeForContext(GeneratorMappings.java:127)
[generate] at jetbrains.mps.generator.impl.AbstractTemplateGenerator.nodeCopied(AbstractTemplateGenerator.java:132)
[generate] at jetbrains.mps.generator.impl.TemplateExecutionEnvironmentImpl.nodeCopied(TemplateExecutionEnvironmentImpl.java:374)
[generate] at jetbrains.mps.generator.impl.TemplateProcessor.applyTemplate(TemplateProcessor.java:125)
[generate] at jetbrains.mps.generator.impl.TemplateProcessor.apply(TemplateProcessor.java:103)
[generate] at jetbrains.mps.generator.impl.interpreted.TemplateRootMappingRuleInterpreted.apply(TemplateRootMappingRuleInterpreted.java:73)
[generate] at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:244)
[generate] ... 12 more
[generate]
[generate] Generation failed for model 'HelloWorld.sandbox': unexpected exception when applying root rule. java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] -- -- was input node: [root] HelloWorldApp "App3"[9117264346792514080] in HelloWorld.sandbox@0
[generate] generation completed with errors in 34 ms
[generate] Error executing target jetbrains.mps.make.facets.Generate.generate
[generate] Make was not successful
[generate] ****************************************************************************************************
BUILD FAILED
/Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj/build.xml:320: Process exited with code 243.
Total time: 16 seconds
>>>
Here is also my BuildProject:
build HelloWorldProj generates build.xml
base directory: ../..//Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj
use plugins:
java
mps
macros:
folder mps_home = ./../../../../../../../Applications/MPS 2024.3.app/Contents
dependencies:
mps (artifacts location $mps_home)
de.itemis.mps.extensions (artifacts location ./build/dependencies/de.itemis.mps.extensions)
project structure:
idea plugin HelloWorldProj from generated by default 'plugin.xml' descriptor file
name HelloWorldProj
short (folder) name HelloWorldProj4
description <no description>
version 1.0
<< no vendor >>
content:
HelloWorldProj
dependencies:
jetbrains.mps.core
com.dslfoundry.plaintextgen
de.itemis.mps.selection
de.itemis.mps.extensions.build
<depends>com.intellij.modules.platform</depends>
mps group HelloWorldProj
language HelloWorld (19248cea-d2ea-4aac-8a08-f685839c5aff)
load from ./languages/HelloWorld/HelloWorld.mpl
content:
resources files from ./languages/HelloWorld
includes icons/**, resources/**
model root
files from ./languages/HelloWorld/models
includes **/*.mps, **/*.mpsr, **/.model
dependencies:
(extracted) jetbrains.mps.execution.util
(extracted) com.dslfoundry.plaintextgen
(extracted) target jetbrains.mps.baseLanguage
(extracted) MPS.OpenAPI
(extracted) jetbrains.mps.lang.migration
runtime:
<no runtime>
solution HelloWorld.sandbox (0d569732-1dc2-4e3a-bf83-833a8f59e670)
load from ./languages/HelloWorld.sandbox/HelloWorld.sandbox.msd
content:
(with sources)
(code compile in MPS)
model root
files from ./languages/HelloWorld.sandbox/models
includes **/*.mps, **/*.mpsr, **/.model
dependencies:
(extracted) JDK
(extracted) HelloWorld
default layout:
zip HelloWorldProj.zip
plugin HelloWorldProj auto packaging
# Readonly part ... # end of readonly part
<empty>
<<additional aspects>>
>>>>
Note also that in ./build/dependencies/de.itemis.mps.extensions (artifacts location for de.itemis.mps.extensions) I have all the mps extensions, as downloaded from github. I have also the same result if I use set artifacts location for de.itemis.mps.extensions to the plugins folder of MPS where I have all the required plugins (i.e., com.dslfoundry.plaintextgen, de.itemis.mps.selection, de.itemis.mps.extensions.build).
Regards.