arc*_*rcy 0 java netbeans maven
我有一个用 Java 编写的小实用程序,用 Netbeans 作为“Maven 项目”编写(项目上的小图标上有风格化的“m”)。我想将此实用程序及其依赖的库打包为 jar 文件;我希望 jar 文件包含必要的运行时库,因此我不必单独打包它们。
Netbeans 说明说,当我运行构建时,我将在项目目录下创建“dist”和“lib”目录,并且(因为我已经在项目属性中设置了主类),我将有它在我的清单文件中指定。这一切都没有发生;该项目在 IDE 下构建和运行良好,但它创建了一个 jar,其中仅包含实用程序特定的类,没有库类,清单没有写入我的主类,并且库类不在 jar 中。
是因为这是一个 Maven 项目而不是默认的 Netbeans Java 项目吗?如何使用 Netbeans 中的 Maven 项目完成此操作?
——
按照建议添加 maven-assembly-plugin 后,“clean and build”的控制台输出如下所示:
cd C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_07" M2_HOME=C:\\devTools\\apache-maven cmd /c "\"\"C:\\devTools\\apache-maven\\bin\\mvn.bat\" -DskipTests=true
-Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.1\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 clean install\"" Scanning for projects...
------------------------------------------------------------------------ Building OlbUserLoad 1.0-SNAPSHOT
------------------------------------------------------------------------
--- maven-clean-plugin:2.4.1:clean (default-clean) @ OlbUserLoad --- Deleting C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target
--- maven-resources-plugin:2.5:resources (default-resources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. Copying 1 resource Copying 0 resource
--- maven-compiler-plugin:2.0.2:compile (default-compile) @ OlbUserLoad --- Compiling 1 source file to C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\classes
--- maven-resources-plugin:2.5:testResources (default-testResources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. skip non existing resourceDirectory C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\src\test\resources
--- maven-compiler-plugin:2.0.2:testCompile (default-testCompile) @ OlbUserLoad --- Nothing to compile - all classes are up to date
--- maven-surefire-plugin:2.10:test (default-test) @ OlbUserLoad --- Tests are skipped.
--- maven-jar-plugin:2.3.2:jar (default-jar) @ OlbUserLoad --- Building jar: C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar
--- maven-install-plugin:2.3.1:install (default-install) @ OlbUserLoad --- Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.jar Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\pom.xml to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.pom
------------------------------------------------------------------------ BUILD SUCCESS
------------------------------------------------------------------------ Total time: 2.155s Finished at: Fri Apr 22 10:15:28 EDT 2016 Final Memory: 17M/152M
------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望这能帮助我们弄清楚还缺少什么。
将此插件包含在您的 .pom 文件中。这是为了告诉 Maven 使用依赖项组装您的应用程序。
之后,在 Netbeans 中构建您的项目,您将看到带有依赖项的 jar。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>Your Main Class</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
请参阅:在 NetBeans IDE 7.4 中创建 Java Maven 项目
| 归档时间: |
|
| 查看次数: |
4413 次 |
| 最近记录: |