java - 从 Netbeans/Maven 项目创建桌面 jar

标签 java maven netbeans

我有一个用 Java 编写的小实用程序,用 Netbeans 编写为“Maven 项目”(项目上的小图标上面有风格化的“m”)。我想将该实用程序及其依赖的库打包为 jar 文件;我希望 jar 文件包含必要的运行时库,这样我就不必单独打包它们。

Netbeans 说明说,当我运行构建时,我将在项目目录下创建“dist”和“lib”目录,并且(因为我已经在项目属性中设置了主类),我将在我的 list 文件中指定它。这一切都没有发生;该项目在 IDE 下构建并运行良好,但它创建了一个仅包含实用程序特定类的 jar,没有库类, list 中没有写入我的主类,并且库类不在 jar 中。

是因为这是一个 Maven 项目而不是默认的 Netbeans Java 项目吗?如何使用 Netbeans 中的 Maven 项目完成此任务?

--

按照建议添加 maven-assemble-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
------------------------------------------------------------------------

我希望这能帮助我们找出还缺少什么。

最佳答案

将此插件包含在您的 .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>

引用:Creating a Java Maven Project in NetBeans IDE 7.4

关于java - 从 Netbeans/Maven 项目创建桌面 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795967/

相关文章:

java - Google AppEngine maven 应用程序更新

java - 删除 NetBeans 中的 'short' 代码完成

user-interface - Netbeans 表单加载问题

java - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 表权限不存在

java - DeadLock 在批量 DELETE 预准备语句 MYSQL 中发现错误

java - 仅在 Intellij 中运行的resthub引导的maven java项目中的生产中使用自定义database.properties文件

java - 更改 NetBeans 默认 JFrame 主函数有什么区别吗?

java - 使用 gitlab-ci 进行 GUI 测试(java swing)时出现 headless (headless)异常

java - 在多个 View 持有者 recyclerview 上转换异常

面向多个客户的 Android 构建配置