精华内容
下载资源
问答
  • springboot2.3.0 maven打包方式
    千次阅读
    2020-07-18 20:22:58

    一、普通打包

    1.此方式为传统打包,打包整个src及lib为一个jar,通常是50-100M,如果是docker镜像化,推送镜像就比较耗时

    2.此方式1.4.2版本后不支持jsp,需要显示指定版本号1.4.2

    <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>

     

    二、lib、jar分层打包

    1.此方式可以解决springboot2.x不支持jsp的问题

    2.打包后会有一个lib目录以及一个项目jar,可以直接java -jar xx.jar启动

    3.如果lib依赖没有更改的话,部署时只上传xx.jar即可重新部署

    <!-- 分层打包1,打包源码,指定外部lib路径 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>${mainClass}</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <!-- 分层打包2,拷贝依赖到jar外面的lib目录 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.2</version>
                    <executions>
                        <execution>
                            <id>copy-lib</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <includeScope>compile</includeScope>
                    </configuration>
                </plugin>

    三、springboot2.3.0新特性 layer分层打包

    此方式可以使docker构建分层,推镜像更方便快捷,如果不修改lib,只修改src,则只会push src

    <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.3.0.RELEASE</version>
                    <configuration>
                        <layers>
                            <enabled>true</enabled>
                        </layers>
                    </configuration>
                </plugin>

    附:springboot2.3.0layer分层构建docker

    更多相关内容
  • maven打包 maven打jar包详细步骤
  • 本篇文章主要介绍了maven多模块工程打包部署的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 常用MAVEN打包方式总结

    万次阅读 2017-05-09 18:26:02
    几种常用的maven打包插件总结: 一、自带插件: maven自带的核心插件为Build plugins和Reporting plugins。 mvn compile编译源码实际上就利用到了maven-compiler-plugin,其他phase也类似用到了相应的插件 关于...

    几种常用的maven打包插件总结:
    一、自带插件:
    maven自带的核心插件为Build plugins和Reporting plugins。
    mvn compile编译源码实际上就利用到了maven-compiler-plugin,其他phase也类似用到了相应的插件
    关于maven自带的核心插件见:http://maven.apache.org/plugins/index.html

    核心插件 maven-compiler-plugin
    参考地址 http://maven.apache.org/plugins/maven-compiler-plugin/
    从3.0版本开始,编译工具默认使用的是 javax.tools.JavaCompiler(从JDK 1.6开始) 如果要强制使用javac来进行编译,需要添加参数forceJavacCompilerUse

    <plugin> 
      <groupId>org.apache.maven.plugins</groupId>  
      <artifactId>maven-compiler-plugin</artifactId>  
      <version>3.6.1</version>  
      <configuration> 
        <encoding>utf-8</encoding>  
        <source>1.7</source>  
        <!-- 默认1.5 -->  
        <target>1.7</target>  
        <!-- 默认1.5 -->  
        <compilerArgs> 
          <!-- 传递编译参数  -->  
          <arg>-verbose</arg>  
          <arg>-Xlint:all,-options,-path</arg> 
        </compilerArgs>  
        <fork>true</fork>  
        <!-- 配置编译内存参数 -->  
        <meminitial>128m</meminitial>  
        <!-- 初始内存 -->  
        <maxmem>512m</maxmem>  
        <!-- 最大内存 -->  
        <executable>${JAVA_1_4_HOME}/bin/javac</executable>  
        <!-- 指定编译的java库 -->  
        <compilerVersion>1.3</compilerVersion>  
        <!-- 指定编译版本 --> 
      </configuration> 
    </plugin>

    配置source 和target时,也可以这样配置 实际上这是javac指令可以接受的参数

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>

    二、直接打成可执行的jar包。
    这种打包方式比较粗暴,将应用的依赖包和程序包打成一个全量包。包会相对较大,但是好处也很明显,不用管依赖包。所以这种方式只适用于比较小的项目,比如搭建微服务这种方式可以适用。

    附上关键的服务器执行代码
    java -jar dataCleaner.jar 1>/home/credit/app/tracefile 2>/home/credit/app/errorfile &
    说明: 最后面的& 表明后台执行。
    1> 将运行日志输出到tracefile
    2> 将错误日志输出到errorfile

    具体参数很多,参考官网页面
    官网页面 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
    </plugin>

    还一种方式,可以使用spring-boot的打包插件进行打包。一般是跟spring boot一起使用的,但是也可以单独利用出来打成可执行的整包。

    <plugin> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-maven-plugin</artifactId>  
      <version>1.3.5.RELEASE</version>  
      <configuration>
        <mainClass>com.ftoul.dataCleaner.DataCleanServiceProvider</mainClass>  
        <layout>ZIP</layout> 
      </configuration>  
      <executions> 
        <execution> 
          <goals> 
            <goal>repackage</goal> 
          </goals> 
        </execution> 
      </executions> 
    </plugin>

    补充一下,还有一个shade插件也是比较常用的打fat jar包的方式

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.0.0</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <manifestEntries>
                  <Main-Class>org.sonatype.haven.ExodusCli</Main-Class>
                  <Build-Number>123</Build-Number>
                </manifestEntries>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>

    三 将依赖包与代码包分开打包
    这种打包方式更普遍适用。毕竟依赖的jar包在项目发展中变动会相对较小。一般可配合maven-dependency-plugin 和 maven-jar-plugin 两个插件打包。前者负责依赖包,后者负责程序包。

    另外,附上服务器可用的执行脚本。

    more runapp.sh 
    #!/bin/sh
    #执行jar包
    RUN_LIBS=""
    #依赖jar包  
    SUPPORT_LIBS=""
    RUN_LIB_PATH="$HOME/app/lib"
    SUPPORT_LIB_PATH="$HOME/app/support"
    #加载程序包
    for i in ${RUN_LIB_PATH}/* ; do
       RUN_LIBS=${RUN_LIBS}:$i
    done
    #加载依赖包
    for i in ${SUPPORT_LIB_PATH}/* ; do
       SUPPORT_LIBS=${SUPPORT_LIBS}:$i
    done
    #整合classpath
    CLASSPATH=${RUN_LIBS}:${SUPPORT_LIBS}
    export CLASSPATH
    #调用java指令执行。-D输入参数 java中可以用 System.getProperties读取。同时指定执行入口类 SpringBootApplication  这是一个典型的Springboot的执行方式。
    java  -Xdebug  -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=27899,suspend=n -cp $CLASSPATH  -Dspring.profiles.active=prod com.app.SpringBootApplication -D
    user.timezone=GMT+08 1>/home/credit/ftoulcloud/bin/tracefile 2>/home/credit/ftoulcloud/bin/errorfile &
    
    echo Start App Success!

    assembly官网的其他几个示例使用项目的依赖包进行打包

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.0.0</version>
          <executions>
            <execution>
              <id>src-dependencies</id>
              <phase>package</phase>
              <goals>
                <!-- use copy-dependencies instead if you don't want to explode the sources -->
                <goal>unpack-dependencies</goal>
              </goals>
              <configuration>
                <classifier>sources</classifier>
                <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
                <outputDirectory>${project.build.directory}/sources</outputDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

    将指定的包打入依赖包

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.0.0</version>
          <executions>
            <execution>
              <id>copy</id>
              <phase>package</phase>
              <goals>
                <goal>copy</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <artifactItems>
              <artifactItem>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <type>jar</type>
                <overWrite>false</overWrite>
                <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                <destFileName>optional-new-name.jar</destFileName>
              </artifactItem>
            </artifactItems>
            <outputDirectory>${project.build.directory}/wars</outputDirectory>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>true</overWriteSnapshots>
          </configuration>
        </plugin>
      </plugins>
    </build>

    一个可用的示例

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <!-- <version>2.10</version> -->
        <executions>
            <execution>
                <id>copy-dependencies</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>export</outputDirectory> <!-- 将依赖包放入export文件夹 -->
                    <excludeTransitive>false</excludeTransitive>
                    <stripVersion>true</stripVersion>
                </configuration>
            </execution>
        </executions>
    </plugin>

    四、maven-jar-plugin 将指定的一些文件打包成jar包
    这个比较简单。就将指定的文件打成jar包

    <plugin> 
      <groupId>org.apache.maven.plugins</groupId>  
      <artifactId>maven-jar-plugin</artifactId>  
      <version>3.0.2</version>  
      <configuration>  <!-- manifest配置信息 主要是可以配置主执行类。有主执行类,可以用java-jar直接执行。没有的话就需要指定执行类 -->
        <archive> 
          <manifest> 
            <addClasspath>true</addClasspath>  
            <classpathPrefix>support/</classpathPrefix>  
            <mainClass>com.myapp.MyAppApplication</mainClass> 
    <!-- 可以按上面的方式自己配置,也可以指定MF文件打包。 -->
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </manifest> 
        </archive>  
      </configuration>
      <executions> 
        <execution> 
          <id>myapp1-jar</id>  
          <phase>package</phase>  
          <goals> 
            <goal>jar</goal> 
          </goals>  
          <configuration> 
            <classifier>myapp</classifier>  
            <includes> 
              <include>com/myapp/**</include>  
              <include>mybatis/**</include>  
              <include>templates/**</include>  
              <include>*.properties</include>  
              <include>dubbo.xml</include> 
            </includes> 
          </configuration> 
        </execution>  
        <execution> 
          <id>myapp2-jar</id>  
          <phase>package</phase>  
          <goals> 
            <goal>jar</goal> 
          </goals>  
          <configuration> 
            <classifier>myapp2</classifier>  
            <includes> 
              <include>com/myapp2/crawler/*</include>  
              <include>com/myapp2/crawler/*</include>  
              <include>com/myapp2/utils/**</include>  
              <include>log4j.properties</include> 
            </includes> 
          </configuration> 
        </execution>  
      </executions> 
    </plugin>

    五、其他丰富的三方插件
    PMD打包插件。 PMD一个很好用的静态代码检查插件, eclipse可以直接安装插件使用
    生成PMD报告
    http://maven.apache.org/plugins/maven-pmd-plugin/
    只能用于3.3.3以后的maven版本

    分析JSP页面

    <reporting>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.8</version>
          <configuration>
            <language>jsp</language>
            <rulesets>
              <ruleset>jsp-basic</ruleset>
            </rulesets>
            <includes>
              <include>**/*.jsp</include>
            </includes>
            <compileSourceRoots>
              <compileSourceRoot>${basedir}/src/main/webapp</compileSourceRoot>
            </compileSourceRoots>
          </configuration>
        </plugin>
      </plugins>
    </reporting>

    分析JS

    <reporting>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.8</version>
          <configuration>
            <language>javascript</language>
            <rulesets>
              <ruleset>ecmascript-basic</ruleset>
              <ruleset>ecmascript-braces</ruleset>
              <ruleset>ecmascript-unnecessary</ruleset>
            </rulesets>
            <includes>
              <include>**/*.js</include>
            </includes>
            <compileSourceRoots>
              <compileSourceRoot>${basedir}/src/main/javascript</compileSourceRoot>
            </compileSourceRoots>
          </configuration>
        </plugin>
      </plugins>
    </reporting>

    代码非法检查

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.8</version>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
                <goal>cpd-check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

    制定JDK

    <reporting>
      <plugins>
        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.8</version>
          <configuration>
            <targetJdk>1.6</targetJdk>
          </configuration>
        </plugin>
      </plugins>
    </reporting>

    删除PMD报告

    <reporting>
      <plugins>
        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.8</version>
          <reportSets>
            <reportSet>
              <reports>
                <report>pmd</report>
                <report>cpd</report>
              </reports>
            </reportSet>
          </reportSets>
        </plugin>
      </plugins>
    </reporting>

    没事可以经常去官网转转,时不时有些新的打包插件出来。 比如PDF插件 GPG签名插件 TOMCAT插件 JETTY插件 等。 好多好多。用时慢慢去了解。

    展开全文
  • org.apache.maven.plugins maven-jar-plugin true lib/ xx.xx.xx.xx <!-- 分离配置文件 *.** */*.xml
  • 很久没写scala代码有些生疏,代码写好了,打包一直运行不起来,网上搜了很多材料发现没用,有的用ide打包,体验不是很好。   因此找了个之前自己写的一个项目,贴出来供大家参考和爬坑。 maven配合 如果要用maven...

    介绍

      最近有个spark集群压测时小任务,因为习惯了用maven,所以打算用maven的scala依赖来写spark程序。很久没写scala代码有些生疏,代码写好了,打包一直运行不起来,网上搜了很多材料发现没用,有的用ide打包,体验不是很好。
      因此找了个之前自己写的一个项目,贴出来供大家参考和爬坑。

    maven配合

    如果要用maven依赖写scala程序,那么需要做相关的依赖,并且在build里面做一些配置才能打出可直接用spark-submit运行的jar。
    pom.xml

    <?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.bigdata.test.sync</groupId>
        <artifactId>hdfs-to-es</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <properties>
            <scala.version>2.12.11</scala.version>
            <hadoop.version>2.7.5</hadoop.version>
            <spark.version>2.4.6</spark.version>
            <junit.version>5.6.2</junit.version>
            <fastjson.version>1.2.71</fastjson.version>
        </properties>
    
    
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-compiler -->
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${scala.version}</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-reflect -->
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20 -->
            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch-spark-20_2.11</artifactId>
                <version>7.7.1</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.12</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <finalName>spark-to-es-test</finalName>
            <sourceDirectory>src/main/scala</sourceDirectory>
            <testSourceDirectory>src/test/scala</testSourceDirectory>
            <outputDirectory>target</outputDirectory>
            <!--        本地调试时注释-->
            <!--        <resources>-->
            <!--            &lt;!&ndash; 控制资源文件的拷贝 &ndash;&gt;-->
            <!--            <resource>-->
            <!--                &lt;!&ndash; 本任用的idea 打包时需要修改src/main/java/resources 为 src/main/resources  否则配置文件打包不到,运行时又需要改回去,否则无法运行&ndash;&gt;-->
            <!--                <directory>src/main/resources</directory>-->
            <!--                <includes>-->
            <!--                    <include>**/*.properties</include>-->
            <!--                    <include>**/*.xml</include>-->
            <!--                </includes>-->
            <!--                <filtering>false</filtering>-->
            <!--                <targetPath>${project.build.directory}/config</targetPath>-->
            <!--            </resource>-->
            <!--        </resources>-->
            <plugins>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <!--                <version>3.3.2</version>-->
                    <executions>
                        <execution>
                            <id>scala-compile-first</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>add-source</goal>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>scala-test-compile</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!-- 打包依赖包到jar中 -->
                <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>ParseLogToJson</mainClass>
                            </manifest>
                            <!--                        本地调试时注释-->
                            <!--                        &lt;!&ndash; (配置文件外置目录) &ndash;&gt;-->
                            <!--                        <manifestEntries>-->
                            <!--                            <Class-Path>config/</Class-Path>-->
                            <!--                            <Class-Path>src/main/resources/</Class-Path>-->
                            <!--                        </manifestEntries>-->
                        </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>
    
    
        <!--仓库信息-->
        <repositories>
            <repository>
                <id>aliyun</id>
                <name>阿里maven仓库</name>
                <url>https://maven.aliyun.com/repository/public</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    
    </project>
    

    可以运行

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • springCloud项目Maven打包方式

    千次阅读 2019-06-21 15:23:46
    1.项目结构 ...2.maven配置方式 <properties> <java.version>1.8</java.version> <local.vsesion>1.0-SNAPSHOT</local.vsesion> <spring-boot-admin.version>2.1...

    1.项目结构
    在这里插入图片描述
    2.maven配置方式

    <properties>
            <java.version>1.8</java.version>
            <local.vsesion>1.0-SNAPSHOT</local.vsesion>
            <spring-boot-admin.version>2.1.4</spring-boot-admin.version>
            <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
            <mybatisplus.version>3.0.7.1</mybatisplus.version>
            <target.dir>g:/data/jar</target.dir>
        </properties>
    
    <build>
            <finalName>userCenter</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <layout>ZIP</layout>
                        <includes>
                            <include>
                                <groupId>non-exists</groupId>
                                <artifactId>non-exists</artifactId>
                            </include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                            <configuration>
                                <classifier>classes</classifier>
                                <attach>false</attach>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>com.yuemee.user.UserCenterApplication</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>false</overWriteSnapshots>
                                <overWriteIfNewer>true</overWriteIfNewer>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                            <configuration>
                                <tasks>
                                    <mkdir dir="${target.dir}/"/>
                                    <copy todir="${target.dir}/" overwrite="true" >
                                        <fileset dir="${project.build.directory}" erroronmissingdir="false">
                                            <include name="${project.build.finalName}.jar"/>
                                        </fileset>
                                    </copy>
                                </tasks>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    3 打包后目录结构
    在这里插入图片描述
    4.项目部署
    在这里插入图片描述
    lib下放的是display.jar的所有依赖

    展开全文
  • 下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐)。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • maven打包为zip,tar.gz

    2018-07-24 11:38:01
    非常实用的工具,将maven类java工程打包为zip格式、tar.gz格式,并且实现jar包 配置文件分离,方便部署。
  • 主要介绍了maven打包成第三方jar包且把pom依赖包打入进来的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Maven的三种打包方式

    千次阅读 2021-02-23 09:06:32
    Maven的三种打包方式 打包的本质是压缩,而jar包和war包都是zip包。 1、pom是maven依赖文件 可以作为其他项目的maven依赖,用来做jar包的版本控制。 2、jar是java普通项目打包文件 通常是开发时需要应用的类,当需要...
  • 主要介绍了Maven3种打包方式maven-assembly-plugin的使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • SpringBoot - Maven方式打包

    千次阅读 2020-06-22 15:18:41
    SpringBoot 为当前最流行的JAVA框架 , 内嵌了 Tomcat 服务器 , 我们不用再像以前 Spring 那样打包成 war , 然后将 war 扔到 tomcat 中运行 ...使用 Maven打包 jar (主流) 使用各种开发工具打包Jar . 如 : idea , eclip.
  • maven打包三种方式

    万次阅读 2018-05-23 17:32:12
    方法一:cmd 控制台打包(比较不推荐) 首先安装maven插件百度下载一个,配置环境变量什么的~在cmd控制台能mvn version能有数据出现。 打包只需要到项目的根目录下~在cmd敲入mvn package.不推荐原因:报错后的报错...
  • 主要介绍了Maven项目打包成war包部署到Tomcat的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • maven项目打包

    2017-06-20 23:59:02
    java maven项目打包
  • Maven有三种打包方式,分别为: assembly:自定义的打包结构,也可以定制依赖项等; jar:默认的打包方式,用来打普通的project JAR包; shade:用来打可执行jar包,也就是所谓的fat JAR包。 下面来讲解下这三种的...
  • Maven打包方式

    千次阅读 2021-08-24 00:23:54
    一、前言 刚开始实习不到一个月的时候,从师兄手中接手了团队的项目,当时第一次听到了 “大包”、“小包” 的概念,只见师兄一顿操作,使用 ...下面将从这两类来讲解使用 Maven 将项目打包方式。 二、将项目打为小包
  • maven 过滤文件夹打包

    2016-09-24 16:02:38
    工程运行环境有研发,测试和生产,不同的运行环境配置不同,maven 打包时指定文件目录,使用指定的文件夹下的配置文件。
  • maven常见命令及打包方式

    千次阅读 2020-03-22 10:15:24
    做项目时使用maven构建项目已经是现在的流行做法了。 maven最大的作用就是用于对项目中jar包依赖的统一管理。 maven还有一些常用的命令,更加方便项目的管理。 下面介绍一些常用的命令及其作用。 (1)maven clean。...
  • Java+IDEA+maven混淆打包

    2019-03-15 15:25:16
    IDEA中使用maven打jar包,然后使用工具混淆代码,亲测有效
  • 主要介绍了浅谈maven 多环境打包发布的两种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • maven的三种项目打包方式——jar,war,pom的区别 jar:默认的打包方式,打包成jar用作jar包使用。例如ly-common,它就是存放一些其他工程都会使用的类,工具类。我们可以在其他工程的pom文件中去引用它 war:将会...
  • maven多环境配置打包

    2019-08-06 01:33:51
    NULL 博文链接:https://clojure.iteye.com/blog/2091511
  • 主要介绍了idea+maven打jar包的两种方式,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • Maven打包技巧

    千次阅读 2020-12-20 00:03:48
    打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将...作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包...
  • maven-assembly 自定义打包方式,可以将工程打包为tar或其他格式,里面保留着配置文件的目录
  • maven项目常用的打包方式

    万次阅读 多人点赞 2018-03-08 10:48:39
    一、无依赖其他任何jar<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId>
  • IDEA中Maven项目打包方式

    万次阅读 2021-01-19 14:32:09
    方式一: 只打包程序包,包括类的方法。在其他应用中运行时,必须...一般都会选择方式二进行打包,这样可以直接在其他应用中调用 maven——》Plugins——》assembly——》assembly:assembly 打包成功后就会出现targ
  • springboot maven 打包的两种方式

    千次阅读 2019-08-23 17:01:28
    一、springboot maven...a、maven配置打包插件 <!--打包配置,执行mvn clean package--> <packaging>jar</packaging> <!--maven打war包依赖配置--> <!--<packaging>war<...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 167,445
精华内容 66,978
关键字:

maven打包方式

友情链接: ANM_CH1.rar