2017-04-25 43 views
0

をプリコンパイルするために、構成は予告通りのドキュメントですタスクは、」私は、タスクが作成されたプラグインは見ることができます:のGradleプラグインジャスパーJSPCは私が「ビルド上の」すべての私のJSPをプリコンパイルしたい<a href="https://dev.liferay.com/develop/reference/-/knowledge_base/7-0/jasper-jspc-gradle-plugin" rel="nofollow noreferrer">jassper jspc gradle plugin</a>を使用していたJSP

Verification tasks 
------------------ 
check - Runs all checks. 
compileJSP - Compile JSP files to check for errors. 
test - Runs the unit tests. 

をしかし、私は作業のいずれかをLUCH場合、例えばGradleではcompileJSPは、私は同じエラーを取得:

:project-web:generateJSPJava 
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
     at com.liferay.jasper.jspc.JspC.main(JspC.java:52) 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at com.liferay.jasper.jspc.JspC._runWithClassPath(JspC.java:168) 
     at com.liferay.jasper.jspc.JspC.main(JspC.java:46) 
Caused by: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory; 
     at org.apache.jasper.compiler.JspUtil.getExpressionFactory(JspUtil.java:1192) 
     at org.apache.jasper.compiler.JspUtil.validateExpressions(JspUtil.java:654) 
     at org.apache.jasper.compiler.Validator$ValidateVisitor.getJspAttribute(Validator.java:1366) 
     at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1142) 
     at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:859) 
     at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1502) 
     at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2297) 
     at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2347) 
     at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2353) 
     at org.apache.jasper.compiler.Node$Root.accept(Node.java:499) 
     at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2297) 
     at org.apache.jasper.compiler.Validator.validate(Validator.java:1890) 
     at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:223) 
     at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) 
     at org.apache.jasper.JspC.processFile(JspC.java:1178) 
     at org.apache.jasper.JspC.execute(JspC.java:1345) 
     ... 6 more 
:project-web:generateJSPJava FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':project-web:generateJSPJava'. 
> Process 'command '/home/[...]/.sdkman/candidates/java/8u121/bin/java'' finished with non-zero exit value 1 

アイデアや代替ソリューションはありますか?私は、実行時に使用しているjavax.el.ExpressionFactoryのバージョンがjasper.jspcプラグインがに対してコンパイルされたjavax.el.ExpressionFactoryのバージョンとは異なっていると思われ、事前

答えて

0

このプラグインは、もはや動作していません。加えて、誰もそれを使用していません(メイベンレポの使用を確認してください)

1

に狂っ

感謝を取得しています。

javax.el.ExpressionFactoryのmaven centralでjar検索hereを実行しました。おそらく、gradle dependencyInsightを使って、クラスのバージョンが変更された理由を知ることができます。

クラスの場所を確認したい場合は、これをビルドに追加することができます。

task printExpressionFactoryLocations { 
    doLast { 
     String findMe = 'javax/el/ExpressionFactory.class' 
     def configuration = buildscript.configurations.classpath 
     def jars = configuration.asFileTree.matching { 
      include '*.jar' 
     } 
     jars.files.each { File jar -> 
      def entries = zipTree(jar).matching { 
       include findMe 
      } 
      if (!entries.files.empty) { 
       println "Found $findMe in $jar.name" 
      } 
     } 
    } 
} 
+0

こんにちは!お返事をありがとうございます!あなたのコードタスクを試したところ、結果は次のとおりです。javax.el-api-2.2.4.jarで見つかったjavax/el/ExpressionFactory.class これで何ができるのですか?どのように私はdependecyInsightに役立つことができますか?あなたが言ったように問題がバージョンであれば何ができますか?再度、感謝します! – user2992476

+0

私はあなたが 'xxx:el-api:y.y.y - > 2.2.4'を依存関係の洞察で見ると思います。ここでは、競合解決のために後のバージョンが選択されています。私はあなたが[強制]したいと思います(https://docs.gradle.org/3.4.1/dsl/org.gradle.api.artifacts.ResolutionStrategy.html#org.gradle.api.artifacts.ResolutionStrategy :強制的に%28java.lang.Object []%29)のバージョン2.2.4を "勝ち"にするのではなく、依存の以前のバージョンを強制します。 –

+0

ありがとう!私はあなたが私に言ったことを試しましたが、うまくいきませんでした:gradle -q依存関係el-api:依存関係 私が間違っていることを知っていますか?もう一度おねがいします – user2992476

関連する問題

 関連する問題