Сбой компиляции Maven для GWT 2.7 SOYC

Как создать отчет GWT Soyc в версии 2.7?

Проект Maven GWT 2.7, созданный с использованием следующей команды архетипа.

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=2.7.0

Я пытаюсь создать отчет soyc для него. Я пробовал 2 подхода, и оба не смогли создать отчет soyc. Эта функция заброшена.

Подход 1. Я пытался использовать параметры конфигурации в файле pom.xml.

            <compilerMetrics>true</compilerMetrics>
            <compileReport>true</compileReport>
            <detailedSoyc>true</detailedSoyc>

Подход 2. Я пытался использовать аргумент командной строки mvn

mvn -Dgwt.compiler.soycDetailed=true clean install

Однако сборка проходит без создания soyc со следующим исключением

[INFO] Compiling module com.appbootup.explore.gwt.HelloGWTApp
[INFO]    Compiling 5 permutations
[INFO]       Compiling permutation 0...
[INFO]       Process output
[INFO]          Compiling
[INFO]             Compiling permutation 1...
[INFO]       Process output
[INFO]          Compiling
[INFO]             Compiling permutation 4...
[INFO]       Process output
[INFO]          Compiling
[INFO]             Compiling permutation 2...
[INFO]       Process output
[INFO]          Compiling
[INFO]             Compiling permutation 3...
[INFO]       Creating Stories file for the compile report
[INFO]          [ERROR] Could not write dependency file.
[INFO] java.util.EmptyStackException
[INFO]  at java.util.Stack.peek(Stack.java:102)
[INFO]  at com.google.gwt.core.ext.soyc.impl.StoryRecorder.analyzeFragment(StoryRecorder.java:179)
[INFO]  at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStoriesImpl(StoryRecorder.java:132)
[INFO]  at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStories(StoryRecorder.java:73)
[INFO]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.makeSoycArtifacts(JavaToJavaScriptCompiler.java:619)
[INFO]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSoycArtifacts(JavaToJavaScriptCompiler.java:479)
[INFO]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSyntheticArtifacts(JavaToJavaScriptCompiler.java:501)
[INFO]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:357)
[INFO]  at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
[INFO]  at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
[INFO]  at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
[INFO]  at com.google.gwt.dev.ThreadedPermutationWorkerFactory$ThreadedPermutationWorker.compile(ThreadedPermutationWorkerFactory.java:50)
[INFO]  at com.google.gwt.dev.PermutationWorkerFactory$Manager$WorkerThread.run(PermutationWorkerFactory.java:74)
[INFO]  at java.lang.Thread.run(Thread.java:745)
[INFO]             Creating Stories file for the compile report
[INFO]                [ERROR] Could not write dependency file.
[INFO]          java.util.EmptyStackException
[INFO]              at java.util.Stack.peek(Stack.java:102)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.analyzeFragment(StoryRecorder.java:179)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStoriesImpl(StoryRecorder.java:132)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStories(StoryRecorder.java:73)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.makeSoycArtifacts(JavaToJavaScriptCompiler.java:619)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSoycArtifacts(JavaToJavaScriptCompiler.java:479)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSyntheticArtifacts(JavaToJavaScriptCompiler.java:501)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:357)
[INFO]              at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
[INFO]              at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
[INFO]              at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
[INFO]              at com.google.gwt.dev.CompilePermsServer.compilePermutation(CompilePermsServer.java:319)
[INFO]              at com.google.gwt.dev.CompilePermsServer.run(CompilePermsServer.java:283)
[INFO]              at com.google.gwt.dev.CompilePermsServer.main(CompilePermsServer.java:246)
[INFO]             Creating Stories file for the compile report
[INFO]                [ERROR] Could not write dependency file.
[INFO]          java.util.EmptyStackException
[INFO]              at java.util.Stack.peek(Stack.java:102)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.analyzeFragment(StoryRecorder.java:179)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStoriesImpl(StoryRecorder.java:132)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStories(StoryRecorder.java:73)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.makeSoycArtifacts(JavaToJavaScriptCompiler.java:619)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSoycArtifacts(JavaToJavaScriptCompiler.java:479)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSyntheticArtifacts(JavaToJavaScriptCompiler.java:501)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:357)
[INFO]              at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
[INFO]              at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
[INFO]              at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
[INFO]              at com.google.gwt.dev.CompilePermsServer.compilePermutation(CompilePermsServer.java:319)
[INFO]              at com.google.gwt.dev.CompilePermsServer.run(CompilePermsServer.java:283)
[INFO]              at com.google.gwt.dev.CompilePermsServer.main(CompilePermsServer.java:246)
[INFO]             Creating Stories file for the compile report
[INFO]                [ERROR] Could not write dependency file.
[INFO]          java.util.EmptyStackException
[INFO]              at java.util.Stack.peek(Stack.java:102)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.analyzeFragment(StoryRecorder.java:179)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStoriesImpl(StoryRecorder.java:132)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStories(StoryRecorder.java:73)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.makeSoycArtifacts(JavaToJavaScriptCompiler.java:619)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSoycArtifacts(JavaToJavaScriptCompiler.java:479)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSyntheticArtifacts(JavaToJavaScriptCompiler.java:501)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:357)
[INFO]              at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
[INFO]              at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
[INFO]              at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
[INFO]              at com.google.gwt.dev.CompilePermsServer.compilePermutation(CompilePermsServer.java:319)
[INFO]              at com.google.gwt.dev.CompilePermsServer.run(CompilePermsServer.java:283)
[INFO]              at com.google.gwt.dev.CompilePermsServer.main(CompilePermsServer.java:246)
[INFO]             Creating Stories file for the compile report
[INFO]                [ERROR] Could not write dependency file.
[INFO]          java.util.EmptyStackException
[INFO]              at java.util.Stack.peek(Stack.java:102)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.analyzeFragment(StoryRecorder.java:179)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStoriesImpl(StoryRecorder.java:132)
[INFO]              at com.google.gwt.core.ext.soyc.impl.StoryRecorder.recordStories(StoryRecorder.java:73)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.makeSoycArtifacts(JavaToJavaScriptCompiler.java:619)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSoycArtifacts(JavaToJavaScriptCompiler.java:479)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.addSyntheticArtifacts(JavaToJavaScriptCompiler.java:501)
[INFO]              at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:357)
[INFO]              at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
[INFO]              at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
[INFO]              at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
[INFO]              at com.google.gwt.dev.CompilePermsServer.compilePermutation(CompilePermsServer.java:319)
[INFO]              at com.google.gwt.dev.CompilePermsServer.run(CompilePermsServer.java:283)
[INFO]              at com.google.gwt.dev.CompilePermsServer.main(CompilePermsServer.java:246)
[INFO]    Compile of permutations succeeded
[INFO]    Compilation succeeded -- 14.936s
[INFO] Linking into D:\workspace\GWork\hello-gwt-app\target\hello-gwt-app-1.0-SNAPSHOT\HelloGWTApp; Writing extras to D:\workspace\GWork\hello-gwt-app\target\extra\HelloGWTApp
[INFO]    Link succeeded
[INFO]    Linking succeeded -- 0.873s

person appbootup    schedule 12.01.2015    source источник


Ответы (1)


Попробуйте удалить подробный параметр Soyc. Я тоже столкнулся с этой проблемой; Я генерировал SOYC без проблем, затем он начал давать сбои, поэтому я настраивал свои настройки, пока не получил SOYC обратно. С включенным json soyc и отключенным детализированным Soyc я все еще получаю множество деталей, показывающих, откуда берется размер моего компилятора.

Вот что я использую в настоящее время:

-XjsInteropMode JS -XmethodNameDisplayMode NONE -Xnamespace NONE
-style OBFUSCATED -sourceLevel 1.8 -compileReport -XnocompilerMetrics
-XnocheckCasts -XnoclassMetadata -XclusterFunctions -XinlineLiteralParameters
 -XoptimizeDataflow -noincrementalCompileWarnings -XenableJsonSoyc 
-nooverlappingSourceWarnings -saveSource -soycReport -XnodetailedSoyc 
-optimize 9 -setProperty compiler.stackMode=strip net.wetheinter.webcomponent.GwtcTest

Примечание для всех, кто наткнется на это: я установил точку останова исключения Java на EmptyStackException и обнаружил, что пустой стек, похоже, происходит вокруг LongLibBase. Это может быть ошибка компилятора, так как это встроенный класс, который обычно обрабатывается иначе, чем другие классы.

person Ajax    schedule 17.01.2015
comment
Для справки, я также работаю в контейнере maven, хотя и через причал: бег. Возможно, загрузчик классов Plexus как-то связан с этим, но мы посмотрим, присоединится ли кто-нибудь еще к этому вопросу. - person Ajax; 17.01.2015
comment
Поскольку я пытаюсь получить полный отчет с подробностями RPC и точек разделения, я не могу игнорировать флаг soycDetailed. - person appbootup; 19.01.2015
comment
Вы пробовали это без этого тега и видели, какие детали вы получаете? Я могу поспрашивать завтра на конференции, если вы все еще не можете получить полезную информацию. - person Ajax; 27.01.2015