无法生成Maven项目

无法生成Maven项目,maven,build,maven-3,maven-plugin,Maven,Build,Maven 3,Maven Plugin,我有一个maven配置,我想在不同的操作系统上使用: <?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.apa

我有一个maven配置,我想在不同的操作系统上使用:

<?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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dx57dc</groupId>
    <artifactId>DX57DC</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <name>DX57DC</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <mainClass>com.dx57dc.MainApp</mainClass>
    </properties>

    <profiles>
        <profile>
            <activation>
                <os>
                    <name>Windows XP</name>
                    <family>Windows</family>
                    <arch>x86</arch>
                    <version>5.1.2600</version>
                </os>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.8</version>
                        <executions>
                            <execution>
                                <id>unpack-dependencies</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>unpack-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeScope>system</excludeScope>
                                    <excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
                                    <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.2.1</version>
                        <executions>
                            <execution>
                                <id>unpack-dependencies</id>

                                <phase>package</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>${java.home}/../bin/javafxpackager</executable>
                                    <arguments>
                                        <argument>-createjar</argument>
                                        <argument>-nocss2bin</argument>
                                        <argument>-appclass</argument>
                                        <argument>${mainClass}</argument>
                                        <argument>-srcdir</argument>
                                        <argument>${project.build.directory}/classes</argument>
                                        <argument>-outdir</argument>
                                        <argument>${project.build.directory}</argument>
                                        <argument>-outfile</argument>
                                        <argument>${project.build.finalName}.jar</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>  
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.1</version>
                        <configuration>
                            <source>1.7</source>
                            <target>1.7</target>
                            <compilerArguments>
                                <bootclasspath>${sun.boot.class.path}${path.separator}${java.home}/lib/jfxrt.jar</bootclasspath>
                            </compilerArguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

        </profile>

        <profile>
            <activation>
                <os>
                    <name>Linux</name>
                    <family>Linux</family>
                    <arch>x86</arch>
                    <!-- <version>5.1.2600</version> -->
                </os>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.8</version>
                        <executions>
                            <execution>
                                <id>unpack-dependencies</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>unpack-dependencies</goal>
                                </goals>
                                <configuration>
                                    <excludeScope>system</excludeScope>
                                    <excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
                                    <outputDirectory>${project.build.directory}/classes</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.2.1</version>
                        <executions>
                            <execution>
                                <id>unpack-dependencies</id>

                                <phase>package</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>${java.home}/../bin/javafxpackager</executable>
                                    <arguments>
                                        <argument>-createjar</argument>
                                        <argument>-nocss2bin</argument>
                                        <argument>-appclass</argument>
                                        <argument>${mainClass}</argument>
                                        <argument>-srcdir</argument>
                                        <argument>${project.build.directory}/classes</argument>
                                        <argument>-outdir</argument>
                                        <argument>${project.build.directory}</argument>
                                        <argument>-outfile</argument>
                                        <argument>${project.build.finalName}.jar</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>  
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.1</version>
                        <configuration>
                            <source>1.7</source>
                            <target>1.7</target>
                            <compilerArguments>
                                <bootclasspath>/opt/java/jre/lib/ext/jfxrt.jar</bootclasspath>
                            </compilerArguments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

        </profile>
    </profiles>


</project>
你能告诉我配置这个POM文件的正确方法是什么吗

在添加“”后,无论是否添加,我在Windows上都会出现此错误:

[exec:exec]
java.lang.NoClassDefFoundError: javafx/application/Application
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 13 more
Exception in thread "main" [INFO] ------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.000s
Finished at: Fri Aug 02 14:09:35 PDT 2013
Final Memory: 6M/15M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project DX57DC: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我认为这是因为发送给execmaven插件的一些参数包含空格

在您的例子中,它看起来像
${project.build.directory}
或其他一些变量解析为
C:\Documents and Settings\something

当您通过此选项时:

<argument>-srcdir</argument>
<argument>${project.build.directory}/classes</argument>
-srcdir
${project.build.directory}/classes
它将解析为:
-srcdir=C:\Documents and Settings\something/classes


在exec插件配置中,当它应该是类似于:
-srcdir=“C:\Documents and Settings\something/classes”
“with.”

时,在所有属性标签(其中包含$的标签)周围放上“” 像这样

<arguments>
     <argument>-createjar</argument>
     <argument>-nocss2bin</argument>
     <argument>-appclass</argument>
     <argument>"${mainClass}"</argument>
     ....
</arguments>

-createjar
-nocss2bin
-应用类
“${mainClass}”
....

运行maven exec时,类路径中似乎缺少一个jar。您的
参数之一可能是错误的,尤其是包含javafx.application.application的参数。如果您没有传递它的jar,或者该类不在您认为的文件夹中,请检查属性路径以确保该类位于Windows XP中的“我使用NetBeans 7.4”中。我在nbactions.xml:-jar“${basedir}/target/mavenproject1-1.0-SNAPSHOT.jar”中加了引号。问题解决了。
<arguments>
     <argument>-createjar</argument>
     <argument>-nocss2bin</argument>
     <argument>-appclass</argument>
     <argument>"${mainClass}"</argument>
     ....
</arguments>