问题描述
我已经准备好部署项目,因此我需要创建一个可执行jar进行分发.在线阅读后,我现在要尝试clean and build
我的项目(ProjectMaven
),它是一个具有依赖项的Maven
项目(在Netbeans 8
上)
I've my project ready to deploy so I need to create an executable jar for distribution. After reading online I'm now trying to clean and build
my project (ProjectMaven
), it is a Maven
project with dependencies (on Netbeans 8
)
我的项目依赖于我使用Maven
My project has a dependency on another project I've created using Maven
阅读此和答案是我制作了pom.xml
文件像这样:
After reading this and this answers I've made my pom.xml
file like this:
<?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.dwnz.project</groupId>
<artifactId>ProjectMaven</artifactId>
<name>DwnzProject</name>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<!-- nothing here -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>view.MainFrame</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.googlecode.jcsv</groupId>
<artifactId>jcsv</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.24</version>
</dependency>
<dependency>
<groupId>com.dazito.retro.eventbus</groupId>
<artifactId>RetroEventBusMaven</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
</dependencies>
</project>
com.dazito.retro.eventbus
是我创建的另一个该项目所依赖的Maven项目.
com.dazito.retro.eventbus
is my other Maven project I created which this project depends on.
这是我在项目(ProjectMaven
)上按Clean and Build
时由Maven创建的输出.
Here is the output created by Maven when I press Clean and Build
on my project (ProjectMaven
).
Compiling 48 source files to C:\Users\Dwnz\Documents\NetBeansProjects\ProjectMaven\target\classes
-------------------------------------------------------------
COMPILATION ERROR :
-------------------------------------------------------------
view/MainFrame.java:[9,32] error: cannot find symbol
view/MainFrame.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
api/CallsToGUI.java:[7,32] error: cannot find symbol
view/toolbar/ToolBar.java:[9,32] error: cannot find symbol
view/toolbar/ToolBar.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/menu/ExportTableDialog.java:[9,32] error: cannot find symbol
view/menu/ExportTableDialog.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/toolbar/AskPasswordDialog.java:[9,32] error: cannot find symbol
view/toolbar/AskPasswordDialog.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/menu/ImportTableDialog.java:[7,32] error: cannot find symbol
view/menu/ImportTableDialog.java:[8,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/MainFrame.java:[107,18] error: cannot find symbol
view/rightPanel/RightTable.java:[7,32] error: cannot find symbol
view/rightPanel/RightTable.java:[8,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/toolbar/ToolBar.java:[34,18] error: cannot find symbol
view/menu/ExportTableDialog.java:[46,18] error: cannot find symbol
view/toolbar/AskPasswordDialog.java:[52,12] error: cannot find symbol
view/menu/ImportTableDialog.java:[36,18] error: cannot find symbol
view/rightPanel/RightTable.java:[40,18] error: cannot find symbol
view/actionlisteners/ImportResultsActionListener.java:[10,32] error: cannot find symbol
view/actionlisteners/ImportResultsActionListener.java:[11,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
21 errors
-------------------------------------------------------------
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 4.311s
Finished at: Thu Oct 02 07:32:54 BST 2014
Final Memory: 30M/116M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project ProjectMaven: Compilation failure: Compilation failure:
view/MainFrame.java:[9,32] error: cannot find symbol
view/MainFrame.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
api/CallsToGUI.java:[7,32] error: cannot find symbol
view/toolbar/ToolBar.java:[9,32] error: cannot find symbol
view/toolbar/ToolBar.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/menu/ExportTableDialog.java:[9,32] error: cannot find symbol
view/menu/ExportTableDialog.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/toolbar/AskPasswordDialog.java:[9,32] error: cannot find symbol
view/toolbar/AskPasswordDialog.java:[10,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/menu/ImportTableDialog.java:[7,32] error: cannot find symbol
view/menu/ImportTableDialog.java:[8,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/MainFrame.java:[107,18] error: cannot find symbol
view/rightPanel/RightTable.java:[7,32] error: cannot find symbol
view/rightPanel/RightTable.java:[8,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
view/toolbar/ToolBar.java:[34,18] error: cannot find symbol
view/menu/ExportTableDialog.java:[46,18] error: cannot find symbol
view/toolbar/AskPasswordDialog.java:[52,12] error: cannot find symbol
view/menu/ImportTableDialog.java:[36,18] error: cannot find symbol
view/rightPanel/RightTable.java:[40,18] error: cannot find symbol
view/actionlisteners/ImportResultsActionListener.java:[10,32] error: cannot find symbol
view/actionlisteners/ImportResultsActionListener.java:[11,49] error: package com.dazito.retro.eventbus.buses.singletons does not exist
-> [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/MojoFailureException
我做错了什么?如何解决此问题,以便清理并构建项目?该项目没有编译错误,并且在按下netbeans中的运行按钮时会执行罚款.
What am I doing wrong? How can I fix this so I can clean and build the project?The project has no compilation errors and does executes fines when pressing the run button inside netbeans.
推荐答案
这个插件我不太了解,但是您可能有可能要考虑一下.
I do not know so good this plugin, but there is a possibility that you maybe want to consider.
使用阴影插件代替装配插件. http://maven.apache.org/plugins/maven-shade-plugin/
Instead of the assembly plugin, use shade plugin. http://maven.apache.org/plugins/maven-shade-plugin/
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>.settings/**</exclude>
<exclude>*.classpath</exclude>
<exclude>*.project</exclude>
<exclude>*.txt</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
要创建包括所有内容的完整.exe或使用全部内容启动.jar的.exe,请使用launch4j插件 https://github.com/lukaszlenart/launch4j-maven-plugin
And to create a whole .exe including all, or .exe which launch a .jar with all, use launch4j plugin https://github.com/lukaszlenart/launch4j-maven-plugin
<plugin>
<groupId>com.akathist.maven.plugins.launch4j</groupId>
<artifactId>launch4j-maven-plugin</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<id>l4j-gui</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>gui</headerType>
<outfile>target/Project.exe</outfile>
<jar>target/${project.artifactId}-${project.version}.jar</jar>
<!-- if <dontWrapJar>true</dontWrapJar> change to this conf <jar>${project.artifactId}-${project.version}.jar</jar> -->
<dontWrapJar>false</dontWrapJar>
<errTitle>Error in launch4j plugin</errTitle>
<classPath>
<mainClass>path.Main</mainClass>
</classPath>
<icon>Project.ico</icon>
<jre>
<minVersion>1.5.0</minVersion>
<maxVersion>1.6.0</maxVersion>
<initialHeapSize>512</initialHeapSize>
<maxHeapSize>1024</maxHeapSize>
</jre>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0.0.0</txtFileVersion>
<fileDescription>des</fileDescription>
<copyright>Copyright (c) 2014 </copyright>
<companyName>comp</companyName>
<productVersion>3.0.0.0</productVersion>
<txtProductVersion>${project.version}</txtProductVersion>
<productName>Project</productName>
<internalName>Project</internalName>
<originalFilename>Project.exe</originalFilename>
</versionInfo>
</configuration>
</execution>
</executions>
</plugin>
这篇关于使用Netbeans清理并构建Maven项目-编译失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!