我正在尝试将Java 1.8
与Idea UI Designer
的lambda表达式一起使用,我在maven中:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>ideauidesigner-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>javac2</goal>
</goals>
</execution>
</executions>
<configuration>
<fork>true</fork>
<debug>true</debug>
<failOnError>true</failOnError>
</configuration>
</plugin>
和依赖
<dependency>
<groupId>com.intellij</groupId>
<artifactId>forms_rt</artifactId>
<version>7.0.3</version>
</dependency>
当我尝试使用lambdas时,它返回编译错误:
Failed to execute goal org.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2 (default) on project stockbox-chart: Execution default of goal org.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2 failed: 52264 -> [Help 1]
您对如何在Idea UI Designer
使用lambdas有任何想法吗?
答案 0 :(得分:5)
一个解决方法,直到有人能够修复插件,是配置IntelliJ设置以生成GUI作为源而不是二进制文件,然后手动重新生成GUI源之前在GUI设计器中进行更改时运行Maven:
GridLayoutManager
),请在com.intellij:forms_rt:7.0.3
中添加pom.xml
作为编译依赖项,如果它尚未存在答案 1 :(得分:0)
GUI 设计器的问题在于它没有可以使用的 Maven 直接插件,因为 Intellij 使用 ant 对目标 .class 文件进行后处理。您可以使用 maven ant 插件:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<path id="j2cp">
<fileset dir="${project.basedir}/antlibs" includes="*.jar"/>
</path>
<path id="j2sp">
<pathelement location="${project.basedir}/src/main/java"/>
</path>
<taskdef name="javac2" classpathref="j2cp" classname="com.intellij.ant.Javac2"/>
<javac2 destdir="${project.basedir}/target/classes">
<src refid="j2sp"/>
</javac2>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
但是您需要将 javac2 jar 放在 /antlibs 中,在我的项目中我使用这些:
您可以在 ${Intellij.home}/libs 中找到这些库
如果你使用特定的 IDE 布局,也许你需要其他特定的 jars,如果你错过了什么,ant 插件将是特定的