Foros de discusión

Can't include JSTranspiler Gradle Plugin as Dependency

thumbnail
John Schulz, modificado hace 7 años.

Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
I'm trying to build an es2015 module that is a metal-jsx component to be imported/used in several portlets and other es2015 modules. I've successfully deployed vanilla JS modules with blade-cli but I'm now trying to deploy the metal-jsx component and it was failing on the transpileJS task. I realized I need to add a Gradle build script and require the JS Transpiler as a dependency of the module as outlined here: https://dev.liferay.com/develop/reference/-/knowledge_base/7-0/js-transpiler-gradle-plugin. But when I add the buildscript and try to apply the plugin I get this error in Terminal:
Error
  0. [ExceptionTransformer.transform] org.gradle.tooling.BuildException: Could not fetch model of type 'CustomModel' using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.0-bin.zip'.


The only change I made in my module's build.gradle file, here is the content of that file:

buildscript {
    dependencies {
        classpath group: "com.liferay", name: "com.liferay.gradle.plugins.js.transpiler", version: "2.2.4"
    }

    repositories {
        maven {
            url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
        }
    }
}

apply plugin: "com.liferay.js.transpiler"

version = '1.0.0'


Please advise.
thumbnail
Andrea Di Giorgi, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 3 Fecha de incorporación: 27/02/15 Mensajes recientes
Hi,
Are you in a Liferay Workspace, or a standalone Gradle project?
Also, can you please try to run Gradle with --stacktrace and post the result here?

Thanks!
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Oh man, I'm sorry...I didn't subscribe to my post so I didn't see your timely reply emoticon

So i'm using a Liferay workspace (1.2.4). Here's the stacktrace:


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':modules:metal-poc'.
> Could not resolve all dependencies for configuration ':modules:metal-poc:classpath'.
   > Could not find com.liferay:com.liferay.gradle.plugins.js.transpiler:2.2.4.
     Searched in the following locations:
         https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public/com/liferay/com.liferay.gradle.plugins.js.transpiler/2.2.4/com.liferay.gradle.plugins.js.transpiler-2.2.4.pom
         https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public/com/liferay/com.liferay.gradle.plugins.js.transpiler/2.2.4/com.liferay.gradle.plugins.js.transpiler-2.2.4.jar
     Required by:
         SCDHHS.modules:metal-poc:unspecified

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':modules:metal-poc'.
        at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:57)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
        at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:82)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:49)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:240)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':modules:metal-poc:classpath'.
        at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.rethrowFailure(DefaultLenientConfiguration.java:62)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultResolvedConfiguration.rethrowFailure(DefaultResolvedConfiguration.java:36)
        at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyConfigurationResolver$FilesAggregatingResolvedConfiguration.rethrowFailure(SelfResolvingDependencyConfigurationResolver.java:112)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver$ErrorHandlingResolvedConfiguration.rethrowFailure(ErrorHandlingConfigurationResolver.java:189)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:684)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:314)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
        at org.gradle.api.internal.initialization.DefaultScriptHandler.getScriptClassPath(DefaultScriptHandler.java:69)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.defineScriptHandlerClassScope(DefaultPluginRequestApplicator.java:190)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:75)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:157)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
        ... 51 more
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.liferay:com.liferay.gradle.plugins.js.transpiler:2.2.4.
Searched in the following locations:
    https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public/com/liferay/com.liferay.gradle.plugins.js.transpiler/2.2.4/com.liferay.gradle.plugins.js.transpiler-2.2.4.pom
    https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public/com/liferay/com.liferay.gradle.plugins.js.transpiler/2.2.4/com.liferay.gradle.plugins.js.transpiler-2.2.4.jar
Required by:
    SCDHHS.modules:metal-poc:unspecified
        at org.gradle.internal.resolve.result.DefaultBuildableComponentResolveResult.notFound(DefaultBuildableComponentResolveResult.java:38)
        at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:88)
        at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve(RepositoryChainComponentMetaDataResolver.java:59)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.ComponentResolversChain$ComponentMetaDataResolverChain.resolve(ComponentResolversChain.java:80)
        at org.gradle.api.internal.artifacts.ivyservice.clientmodule.ClientModuleResolver.resolve(ClientModuleResolver.java:44)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder$ModuleVersionResolveState.resolve(DependencyGraphBuilder.java:564)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder$ModuleVersionResolveState.getMetaData(DependencyGraphBuilder.java:574)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder$DependencyEdge.calculateTargetConfigurations(DependencyGraphBuilder.java:260)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder$DependencyEdge.attachToTargetConfigurations(DependencyGraphBuilder.java:234)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:141)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:79)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:85)
        at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver$1.run(CacheLockingArtifactDependencyResolver.java:41)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:192)
        at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:175)
        at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:106)
        at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.useCache(DefaultCacheFactory.java:187)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:64)
        at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver.resolve(CacheLockingArtifactDependencyResolver.java:39)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolve(DefaultConfigurationResolver.java:91)
        at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyConfigurationResolver.resolve(SelfResolvingDependencyConfigurationResolver.java:40)
        at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolve(ShortCircuitEmptyConfigurationResolver.java:62)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolve(ErrorHandlingConfigurationResolver.java:43)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:393)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveNow(DefaultConfiguration.java:368)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:361)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:682)
        ... 61 more


BUILD FAILED
thumbnail
Andrea Di Giorgi, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 3 Fecha de incorporación: 27/02/15 Mensajes recientes
I'm sorry, that version of com.liferay.gradle.plugins.js.transpiler does not exist emoticon We're fixing the page on dev.liferay.com asap, thank you for telling me!

You can have a look at the CHANGELOG to see which versions are available.

Anyway, you don't need to apply that plugin manually: since you're in a Workspace, the JS Transpiler plugin is applied automatically.
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Ok, that's what I thought initially. So here's my package.json:

{
  "name": "metal-poc",
  "version": "1.0.0",
  "dependencies": {
		"metal-jsx": "^1.0.0-rc.9"
  }
}


Here's my metal-poc es2015 module (metal component):

'use strict';
import JSXComponent from 'metal-jsx';

class App extends JSXComponent {
	render() {
		return <div>Hello World</div>;
	}
}

export default App;


When when I blade deploy without adding the JSTranspiler it does try to run the transpileJS task but I get this error:

SyntaxError: /Users/{myuser}/{myWorkspace}/modules/metal-poc/build/resources/main/META-INF/resources/app.es.js: Unexpected token (6:9)
  4 | class App extends JSXComponent {
  5 |   render() {
&gt; 6 |           return <div>Hello World</div>;
    |          ^
  7 |   }
  8 | }
  9 | 


If I add babel to my package.json, like this:

{
  "name": "metal-poc",
  "version": "1.0.0",
  "babel": {
        "presets": ["metal-jsx"]
  },
  "dependencies": {
	"metal-jsx": "^1.0.0-rc.9"
  }
}


...then I get this error:
ReferenceError: [BABEL] /Users/{myuser}/{myWorkspace}/modules/metal-poc/node_modules/metal-jsx/src/JSXComponent.js:


Any thoughts...do I need to add something else to my package.json, build.gradle, or bnd.bnd?
thumbnail
Chema Balsas, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

Regular Member Mensajes: 127 Fecha de incorporación: 25/02/13 Mensajes recientes
Hey John,

The metal-jsx package is not a Babel Preset. You should use the React preset.

Hope that works for you!
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Thanks Chema, but upon changing the babel preset to ["react"] , i now get this error:

Error: Couldn't find preset "react" relative to directory "/Users/{user}/{workspace}/modules/metal-poc"


So if I add a dependency for babel-preset-react in my module's package.json, I get this error again:
ReferenceError: [BABEL] /Users/{user}/{workspace}/modules/metal-poc/node_modules/metal-jsx/src/JSXComponent


I shouldn't have to include babel itself as a dependency, right? I thought that was the way the documentation laid it out. I just tried adding it anyway for good measure to package.json but but I get the same error listed above even so...

What am I missing?
thumbnail
Chema Balsas, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

Regular Member Mensajes: 127 Fecha de incorporación: 25/02/13 Mensajes recientes
You should run

npm install --save-dev babel-preset-react
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Chema, I just ran it and get the same error.

I'm attaching the files here as there are not very many, hopefully a quick peek or build of this module on your end will clue you in on what may be wrong.

Thank you for your assistance...frustrating.

Archivos adjuntos:

thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Attached files ^^^^
thumbnail
Chema Balsas, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

Regular Member Mensajes: 127 Fecha de incorporación: 25/02/13 Mensajes recientes
Hey John,

I'm guessing that's part of a larger setup... that empty build gradle won't have any tasks if I simply download it. Could you share how are you building it, or create a standalone example so I could try to reproduce your build?

Thanks!
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Ok, so that's the issue? Seeing the files I gave you, can you give me an example of what the build.gradle file should look like to simply transpile the metal code for use in another module and/or portlet? The only working es2015 module example I could find to follow was the Liferay example 'js-logger'. I got that working and it will actually transpile correctly without anything in the build.gradle file (but it wasn't metal-jsx, just plain ES6 js) and I can import it into a portlet's JSP with an aui require. I'm trying to build a metal component and be able to import and reuse that component in portlet JSPs and also other es2015 modules.
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
To be clear, I don't need anything fancy...just want this es2015 metal-jsx component transpiled into a build/resources/main/META-INF/resources/app.es.js file that can be directly imported in a porlet for aui require or into another es2015 module for reuse there. So, in my thinking...babel dependency should already be part of the transpileJS task that runs by default, correct? If so, i'm not sure what I would need to add to a build.gradle file. If i have to import gulp and babel manually and just build it all from scratch, this method becomes a lot less attractive because in that case blade isn't really doing anything for me...but it seems to work fine with the js-logger example so I feel like i'm missing something small that's not letting the metal-jsx component be transpiled correctly. Am I making sense?
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Are there any examples of a proper build.gradle file setup for metal-jsx components?
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Is anyone able to help with this?
thumbnail
John Schulz, modificado hace 7 años.

RE: Can't include JSTranspiler Gradle Plugin as Dependency

New Member Mensajes: 22 Fecha de incorporación: 29/07/16 Mensajes recientes
Chema, any more on this?