IDEA+Maven 打jar包

Love The Way You Lie 2022-10-22 05:26 392阅读 0赞

软件环境:

​ IDEA:2017.1.5

​ Maven:3.3.9

打jar包:

IDEA 自带的打包工具使用

打无依赖jar包

  1. 如果工程目录中有以下文件夹 删掉

è¿éåå¾çæè¿°

  1. 点击工程上方【File】菜单选择【Project Structure】

è¿éåå¾çæè¿°

  1. 点击【+】 选择【JAR】,【From modules with dependencies】点击【ok】

è¿éåå¾çæè¿°

  1. 点击【1】选择你要打包的Module,点击【2】选择你的主类(也就是你的程序的入口)然后点击【ok】

è¿éåå¾çæè¿°

  1. 点击【ok】

è¿éåå¾çæè¿°

  1. 【1】是要打的jar包的名字,【2】是jar包的输出路径,【3】是程序所需要的jar依赖,【4】是程序主类的名称。因为这里是打没有依赖的jar包,所以将【3】里面不需要的jar包删掉就行。最后点击【ok】

è¿éåå¾çæè¿°

  1. 然后就会生成一个META-INF的文件夹,里面就是一些配置属性

打包涵依赖jar包
对以上的方式中的步骤6中 不做任何修改,然后执行步骤7

Maven 打包
打无依赖jar包

在pom.xml 文件里加入

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-jar-plugin</artifactId>
  4. <version>2.4</version>
  5. <configuration>
  6. <archive>
  7. <!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
  8. <addMavenDescriptor>false</addMavenDescriptor>
  9. <manifest>
  10. <!--是否要把第三方jar放到manifest的classpath中-->
  11. <addClasspath>true</addClasspath>
  12. <!--生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/-->
  13. <classpathPrefix>lib/</classpathPrefix>
  14. <!--应用的main class-->
  15. <mainClass>com.neo.App</mainClass>
  16. </manifest>
  17. </archive>
  18. <!--过滤掉不希望包含在jar中的文件-->
  19. <excludes>
  20. <exclude>${project.basedir}/xml/*</exclude>
  21. </excludes>
  22. </configuration>
  23. </plugin>

点开Maven管理工具

è¿éåå¾çæè¿°
点击【package】

è¿éåå¾çæè¿°
等运行完以后就会生成jar包了

è¿éåå¾çæè¿°

至此依赖打包工具打包完成

打完包后,用 java -jar xxx.jar 执行验证下,如果执行正确,则nice


打包涵依赖jar包

第一种方法

  1. 在pom.xml文件中写入




    org.apache.maven.plugins
    maven-compiler-plugin
    3.1


    maven-assembly-plugin



    com.test.app



    jar-with-dependencies





    make-assemble
    package

    single





  1. 然后执行上面【Maven 打无依赖包】步骤2到步骤4
    第二种方法在pom.xml文件中写入


    org.apache.maven.plugins
    maven-jar-plugin
    2.4



    false


    true

    lib/

    com.yourClass




    ${project.basedir}/xml/*



    org.apache.maven.plugins
    maven-assembly-plugin
    2.4


    src/main/assembly/package.xml




    make-assembly
    package

    single



创建【src/main/assembly】目录

  1. 创建package.xml文件


    bin


    zip





    false
    lib
    false






    ${project.basedir}
    /

    README
    LICENSE

    NOTICE





    ${project.basedir}/src/main/config
    config

    .xml
    .properties





    ${project.build.scriptSourceDirectory}


    startup.






    ${project.build.scriptSourceDirectory}



    startup.





    ${project.build.directory}


    .jar



  1. 将【package.xml】文件放入【assembly】文件夹中

  2. 然后执行上面【Maven 打无依赖包】步骤2到步骤4

如果要打包scala代码需要添加插件:
方案一:

  1. <plugin>
  2. <groupId>net.alchim31.maven</groupId>
  3. <artifactId>scala-maven-plugin</artifactId>
  4. <version>3.4.0</version>
  5. <executions>
  6. <execution>
  7. <goals>
  8. <goal>compile</goal>
  9. <goal>testCompile</goal>
  10. </goals>
  11. </execution>
  12. </executions>
  13. </plugin>

方案二:

  1. <plugin>
  2. <groupId>org.scala-tools</groupId>
  3. <artifactId>maven-scala-plugin</artifactId>
  4. <version>2.15.2</version>
  5. <executions>
  6. <execution>
  7. <goals>
  8. <goal>compile</goal>
  9. <goal>testCompile</goal>
  10. </goals>
  11. </execution>
  12. </executions>
  13. </plugin>

推荐方案一,方案二中的插件最新更新日期是2011年

简单粗暴
将下面的任意一种方案放到pom文件中,并修改成自己项目中的MainClass即可

  1. </plugins>
  2. </build>
  3. 方案一 or 方案二
  4. <build>
  5. <plugins>

方案一:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-shade-plugin</artifactId>
  4. <version>3.0.0</version>
  5. <executions>
  6. <execution>
  7. <phase>package</phase>
  8. <goals>
  9. <goal>shade</goal>
  10. </goals>
  11. <configuration>
  12. <transformers>
  13. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  14. <mainClass>com.test.MainClass</mainClass> <!--带有包路径的MainClass -->
  15. </transformer>
  16. </transformers>
  17. </configuration>
  18. </execution>
  19. </executions>
  20. </plugin>

方案二:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-assembly-plugin</artifactId>
  4. <version>2.4</version>
  5. <configuration>
  6. <archive>
  7. <manifest>
  8. <mainClass>com.test.MainClass</mainClass> <!--带有包路径的MainClass -->
  9. </manifest>
  10. </archive>
  11. <descriptorRefs>
  12. <descriptorRef>jar-with-dependencies</descriptorRef>
  13. </descriptorRefs>
  14. </configuration>
  15. <executions>
  16. <execution>
  17. <id>make-assembly</id>
  18. <phase>package</phase>
  19. <goals>
  20. <goal>single</goal>
  21. </goals>
  22. </execution>
  23. </executions>
  24. </plugin>

打完包后,用 java -jar xxx.jar 执行验证下,如果执行正确,则打包完成

原文链接:https://blog.csdn.net/branwel/article/details/79918018

-— end —-

发表评论

表情:
评论列表 (有 0 条评论,392人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ideajar

    目录 1、打包设置 2、打包介绍 3、开始打包 -------------------- 1、打包设置 先设置要打包的模块信息,即打包进去的内容。如下图所示:F

    相关 如何Jar

    先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:

    相关 ideajar

    idea打jar包 生成jar包在idea中的步骤如下: 1、首先保证能够编译正常运行: ![Center][] 2、点击File ===>Proj

    相关 javaWeb_jar

    1. 不带lib的工程 1) 创建工程 新建的一个java应用程序,调试时可以直接运行main函数。但是这样的程序如何部署呢? 创建一个工程:javaProject。Ne