`

java maven 项目打包

 
阅读更多

maven打包pom配置

 下面的方法是把项目依赖的类都放到jar包里,这样会把jar包变的很胖

1、 maven-shade-plugin

这种方式,打包后可以直接运行,lib包是封装在jar包里的

      <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.iflytek.maven.Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 

2、生成fat的jar包

<build>
  <finalName>dateutils</finalName>
  <plugins>
 
   <!-- download source code in Eclipse, best practice -->
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.9</version>
    <configuration>
     <downloadSources>true</downloadSources>
     <downloadJavadocs>false</downloadJavadocs>
    </configuration>
   </plugin>
 
   <!-- Set a compiler level -->
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
     <source>${jdk.version}</source>
     <target>${jdk.version}</target>
    </configuration>
   </plugin>
 
   <!-- Maven Assembly Plugin -->
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
     <!-- get all project dependencies -->
     <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
     <!-- MainClass in mainfest make a executable jar -->
     <archive>
       <manifest>
      <mainClass>com.iflytek.maven.Main</mainClass>
       </manifest>
     </archive>
 
    </configuration>
    <executions>
      <execution>
     <id>make-assembly</id>
                                        <!-- bind to the packaging phase -->
     <phase>package</phase>
     <goals>
      <goal>single</goal>
     </goals>
      </execution>
    </executions>
   </plugin>
  </plugins>
 </build>

Two jar files will be created in the target folder.

  1. dateutils.jar – Only your project classes
  2. dateutils-jar-with-dependencies.jar – Project and dependency classes in a single jar.

2、把源码打包,项目依赖的lib包放在另一个文件夹里


 <build>
  <finalName>song-order</finalName>
  <defaultGoal>compile</defaultGoal>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.eclipse.m2e</groupId>
     <artifactId>lifecycle-mapping</artifactId>
     <version>1.0.0</version>
     <configuration>
      <lifecycleMappingMetadata>
       <pluginExecutions>
        <pluginExecution>
         <pluginExecutionFilter>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <versionRange>[2.0,)</versionRange>
          <goals>
           <goal>copy-dependencies</goal>
           <goal>unpack</goal>
          </goals>
         </pluginExecutionFilter>
         <action>
          <ignore />
         </action>
        </pluginExecution>
       </pluginExecutions>
      </lifecycleMappingMetadata>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
     <source>1.6</source>
     <target>1.6</target>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
     <archive>
      <manifest>
       <addClasspath>true</addClasspath>
       <classpathPrefix>lib/</classpathPrefix>
       <mainClass>com.iflytek.zxdg.songorder.client.Client</mainClass>
      </manifest>
     </archive>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
     <execution>
      <id>copy</id>
      <phase>install</phase>
      <goals>
       <goal>copy-dependencies</goal>
      </goals>
      <configuration>
       <outputDirectory>${project.build.directory}/lib</outputDirectory>
      </configuration>
     </execution>
    </executions>
   </plugin>
  </plugins>
 </build>

 

这样会生成一个song-order.jar 和lib文件夹 ,这样做每次部署只要不新增依赖,就可以直接替换jar即可

 

3、下面介绍一种更为强大的方法 ,支持打包后,生成zip文件,只要解压zip文件,双击bin文件夹下的start.bat 或者start.sh即可执行,且目录分配清晰

自己还没有搞明白,但是改改还是可以用的,这个直接上传一个包,后面可以拿来改改

 

涉及公司机密还是算了吧,上面的已经够用了

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    python自动化打包java maven工程,并上传至服务器

    python自动化打包java maven工程,并上传至服务器,简化服务器war上传步骤和节约时间

    Java+IDEA+maven混淆打包

    1. **配置Maven打包**: 在`pom.xml`文件中,我们需要添加`maven-jar-plugin`插件来打包Java项目。以下是一个基本的配置示例: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-jar-plugin ...

    Java+IDEA+Maven混淆打包

    在IT行业中,开发Java应用程序时,我们经常需要将代码打包成可执行的JAR文件,以便于部署和分发。本教程将详细讲解如何在IntelliJ IDEA...通过熟练掌握以上步骤,你可以在IDEA中高效地完成Java项目的混淆打包任务。

    maven项目打包

    了解了这些批处理文件的作用,我们可以进一步讨论Maven打包的具体步骤: 1. **配置pom.xml**:在项目根目录下的pom.xml文件中,我们需要指定项目的基本信息(如groupId、artifactId、version)、依赖、构建插件等。...

    maven打包 maven打jar包详细步骤

    本文将详细讲解如何使用Maven来打包一个Java项目,并创建JAR文件。 首先,Maven有三个主要生命周期阶段:`clean`、`default`(也称为`compile`)和`install`。每个阶段包含一系列的阶段(或者称为目标,如`compile`...

    java 打包成安装包无需依赖JRE轻松搞定

    我们开发java程序运行的时候都需要依赖jre才能运行起来,但是用户的电脑上并没有安装jdk或jre的java运行环境。不可能让客户去安装了应用程序还要需安装java开发环境吧。下面是我将jar包打包成setup安装文件一些的...

    普通的IDEA maven java项目demo(hello word)-1.8

    标题中的“普通的IDEA maven java项目demo(hello word)-1.8”指的是一个基于IntelliJ IDEA的Java项目,使用Maven构建系统,并且是初学者级别的Hello World示例。这个项目可能是为了教授Java编程语言的基础知识,...

    使用Maven构建多模块项目

    Maven作为Java领域广泛使用的构建工具,提供了强大的支持来管理多模块项目。本文将深入探讨如何利用Maven构建多模块项目,以及在实际操作中需要注意的关键点。 1. Maven多模块项目结构: Maven多模块项目通常遵循...

    Maven打包,指定classes路径

    以上就是关于"Maven打包,指定classes路径"的知识点,主要涉及到Maven的资源配置和插件定制。理解并掌握这些配置可以帮助开发者更高效地管理和构建Java Web应用。同时,记得在实际项目中根据实际情况调整`pom.xml`,...

    maven生成可执行exe文件

    这将清理旧构建,打包项目,并生成包含所有依赖的JAR文件。然后,`launch4j`会被调用来生成.exe文件。 5. **测试.exe文件** 构建完成后,你可以在项目的目标目录下找到`.exe`文件,双击运行,如果一切配置正确,...

    maven 过滤文件夹打包

    在打包项目时,我们需要确保正确的配置文件被包含进最终的部署包中。 Maven的`maven-resources-plugin`插件提供了资源过滤功能,它允许我们在打包过程中根据构建目标(例如`package`命令)动态替换或选择性地包含...

    maven java项目实例

    在Maven项目中,一般会将这样的代码组织在src/main/java目录下的相应包结构中,比如`com.example.project.util.MemberUtil.java`,并使用Maven的编译、打包和测试生命周期来处理。 总的来说,这个“maven java项目...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要集中在Java编程语言和Maven构建工具上,这是一个基于Maven的、已经过单元测试的Web应用程序的基础框架。下面将详细介绍这两个核心领域的相关知识。 **一、Java编程语言*...

    JAVA权限管理Maven项目

    5. **Maven**:Maven是Java项目管理的利器,它通过POM(Project Object Model)文件管理项目依赖,自动化构建流程,包括编译、测试、打包、部署等。在开发过程中,Maven帮助开发者统一配置,减少因环境差异导致的...

    实现maven管理的Javaweb项目的proguard代码混淆功能

    本文将深入探讨如何在Maven管理的Java Web项目中集成ProGuard工具来实现代码混淆功能,以及在过程中可能遇到的问题及解决方案。 首先,让我们了解什么是ProGuard。ProGuard是一个开源的Java字节码混淆器、优化器和...

    java词云生成器(代码,maven项目)

    Java词云生成器是一款基于Java和Maven构建的项目,旨在帮助开发者轻松地在他们的应用程序中生成具有视觉吸引力的词云。词云是一种数据可视化工具,它以图形方式展示文本中的高频词汇,使得用户能够快速识别和理解...

    java项目打包工具

    Java项目打包工具是开发人员在完成Java应用程序或Web应用程序开发后,用来整合资源、编译代码、处理依赖、生成可部署文件的重要工具。这些工具帮助开发者将源代码、配置文件、库和其他资源组织成便于分发和运行的...

    springboot(web项目,非maven)

    Spring Boot简化了Java Web应用的开发过程,提供了快速构建可运行的应用程序的方式,而Maven则是一个流行的项目管理和依赖管理工具。在这里,我们可能假设开发者选择了Gradle或者其他构建工具替代Maven。 Spring ...

    maven打包出错解决办法,亲测绝对可以!

    总结,解决Maven打包出错需要对项目结构、依赖管理、插件配置等有深入理解。搭建Maven私服则能有效优化依赖下载过程,提升团队开发效率,同时保障内部代码的安全性。希望这些内容能对你在处理Maven相关问题时提供...

    maven构建的java项目demo

    本篇文章将深入探讨 Maven 如何用于构建 Java 项目,以及如何通过 Maven 打包一个名为 "hello-world" 的 Demo 示例。 1. Maven 的基本概念与功能 Maven 是 Apache 软件基金会开发的一个项目管理工具,它基于项目...

Global site tag (gtag.js) - Google Analytics