[英]How to build a runnable JavaFX application using maven?
I am new to JavaFX. 我是JavaFX的新手。 I have created a Hello World project using maven.
我使用maven创建了一个Hello World项目。 It works fine when I run it in Eclipse.
当我在Eclipse中运行它时,它工作正常。
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
I found the deployment tutorial , but when my program comes with maven, I have no idea how to build it. 我找到了部署教程 ,但是当我的程序带有maven时,我不知道如何构建它。
When I try to build the application using build.fxbuild, I got this error. 当我尝试使用build.fxbuild构建应用程序时,我收到此错误。
Buildfile: C:\test\project\workspace\javafx-helloworld\build\build.xml setup-staging-area: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\externalLibs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\externalLibs [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\project [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\project [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\projectRefs do-compile: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\src [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\libs [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\classes [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\build\libs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\build\src [javac] Compiling 1 source file to C:\test\project\workspace\javafx-helloworld\build\build\classes init-fx-tasks: [taskdef] Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found. do-deploy: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\dist [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\dist\libs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\dist\libs **BUILD FAILED C:\test\project\workspace\javafx-helloworld\build\build.xml:93: Problem: failed to create task or type javafx:com.sun.javafx.tools.ant:resources Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any / declarations have taken place. No types or tasks have been defined in this namespace yet**
There is now a maven plugin for JavaFX: 现在有一个JavaFX的maven插件:
https://github.com/zonski/javafx-maven-plugin https://github.com/zonski/javafx-maven-plugin
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>[put your application main class here]</mainClass>
<bundleType>ALL</bundleType>
</configuration>
</plugin>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.