2013-09-25 54 views
8

Tôi có một dự án Java FX và đang sử dụng maven 3.0.5 để xây dựng. Khi tôi chạy gói/cài đặt mvn, dự án không thành công và phàn nàn rằng gói javafx. * không tồn tại. Javafx được đóng gói trong Java 1.7 theo sự hiểu biết của tôi, vì vậy nó không có nghĩa là bản build không chọn cái này. Khi tôi biên dịch nó trong IDE của tôi (intellij) nó hoạt động tốt và sau đó xây dựng maven của tôi cũng cài đặt thành công, tuy nhiên tôi không muốn phải đi qua IDE mỗi khi tôi làm một cài đặt sạch sẽ. bất kỳ ý tưởng?Dự án Javafx không biên dịch với maven

đây là pom của tôi:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <parent> 
     <artifactId>thenaglecode</artifactId> 
     <groupId>com.thenaglecode</groupId> 
     <version>1.0.0.Pre-Alpha</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>system-setup</artifactId> 

    <dependencies> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-vfs2</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <includeEmptyDirs>true</includeEmptyDirs> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <groupId>com.akathist.maven.plugins.launch4j</groupId> 
       <artifactId>launch4j-maven-plugin</artifactId> 
       <version>1.5.2</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>launch4j</goal> 
         </goals> 
         <configuration> 
          <headerType>gui</headerType> 
          <jre> 
           <path>C:\Program Files\Java\jre7</path> 
           <minVersion>1.7.0</minVersion> 
           <initialHeapSize>128</initialHeapSize> 
           <maxHeapSize>1024</maxHeapSize> 
          </jre> 
          <jar>${project.build.directory}/${project.build.finalName}.jar</jar> 
          <outfile>${project.build.directory}/systemsetup.exe</outfile> 
          <classPath> 
           <mainClass>com.thenaglecode.Start</mainClass> 
          </classPath> 
          <singleInstance> 
           <mutexName>thenaglecode-system-setup</mutexName> 
          </singleInstance> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

Và đây là Log của tôi:

[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/CommandHelper.java:[3,26] package javafx.application does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ListAndOptionsController.java:[3,26] package javafx.beans.value does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ListAndOptionsController.java:[4,26] package javafx.beans.value does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ListAndOptionsController.java:[5,26] package javafx.collections does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ListAndOptionsController.java:[6,20] package javafx.event does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ListAndOptionsController.java:[7,20] package javafx.event does not exist 
... 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/Context.java:[3,28] package javafx.scene.control does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/ServiceMuncher.java:[3,31] package com.sun.istack.internal does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/TypeInfo.java:[3,31] package com.sun.istack.internal does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/NumericOnlyTextFieldChangeListener.java:[3,31] package com.sun.istack.internal does not exist 
[ERROR] /C:/Users/Macindows/IdeaProjects/thenaglecode/system-setup/src/main/java/com/thenaglecode/NumericOnlyTextFieldChangeListener.java:[4,26] package javafx.beans.value does not exist 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

Process finished with exit code 1 

Cảm ơn bạn đã giúp đỡ của bạn.

+0

Đó là gây phiền nhiễu: http://stackoverflow.com/questions/9294646/javafx-2-as-a-maven-dependency - hoạt động tốt với JavaFX 8 .. – assylias

+0

bản sao có thể có của [Dự án Maven với JavaFX (với tệp jar trong \ 'lib \')] (http://stackoverflow.com/questions/15278215/maven-project-with-jav afx-với-jar-file-in-lib) – jewelsea

Trả lời

7

đặt này trong sự phụ thuộc (tùy thuộc vào nơi jdk của bạn) sẽ giúp các biên dịch phụ thuộc, tuy nhiên có lẽ bạn nên thay thế nó bằng một biến mà người dùng có thể chỉ định trong settings.xml hoặc hệ thống maven tài sản của họ:

<dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>javaFX</artifactId> 
     <version>2.2</version> 
     <scope>system</scope> 
     <systemPath>C:\Program Files\Java\jre7\lib\jfxrt.jar</systemPath> 
    </dependency> 

thấy Maven project with JavaFX (with jar file in `lib`) để biết thêm chi tiết vì sao

Các vấn đề liên quan