精华内容
下载资源
问答
  • 常用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插件 等。 好多好多。用时慢慢去了解。

    展开全文
  • 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的所有依赖

    展开全文
  • 多场景下的maven打包方式

    千次阅读 2019-01-08 17:31:05
    pom.xml中添加下列插件 版本一:不带依赖 <build> <plugins>...org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version&g...

    pom.xml中添加下列插件

    版本一:maven-shade-plugin单jar,带mainClass

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                        <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.xxx.yourClassName</mainClass>
                        </transformer>
                    </transformers>
                </configuration>
            </plugin>
        </plugins>
    </build>

    版本二:maven-shade-plugin单jar,带本地jar(配合dependency System scope)

    <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-shade-plugin</artifactId>
               <version>3.1.1</version>
               <configuration>
                   <createDependencyReducedPom>false</createDependencyReducedPom>
                   <filters>
                       <filter>
                           <artifact>*:*</artifact>
                           <excludes>
                               <exclude>module-info.class</exclude>
                               <exclude>META-INF/*.SF</exclude>
                               <exclude>META-INF/*.DSA</exclude>
                               <exclude>META-INF/*.RSA</exclude>
                           </excludes>
                       </filter>
                   </filters>
          </configuration>
          <executions>
                   <execution>
                       <phase>package</phase>
                   <goals>
                       <goal>shade</goal>
                   </goals>
                   <configuration>
                            <artifactSet>
                                <includes>
                                    <include>*</include>
                                </includes>
                            </artifactSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.googlecode.addjars-maven-plugin</groupId>
                <artifactId>addjars-maven-plugin</artifactId>
                <version>1.0.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>add-jars</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.basedir}/lib</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    版本三:maven-assembly-plugin依赖配置分目录

    <plugins>
    	<plugin>
    		<groupId>org.apache.maven.plugins</groupId>
    		<artifactId>maven-assembly-plugin</artifactId>
    		<version>3.1.0</version>
    		<configuration>
    			<finalName>项目名</finalName>
    			<descriptors>
    				<descriptor>assembly.xml文件路径</descriptor>
    			</descriptors>
    		</configuration>
    		<executions>
    			<execution>
    				<id>make-assembly</id>
    				<phase>package</phase>
    				<goals>
    					<goal>single</goal>
    				</goals>
    			</execution>
    		</executions>
    	</plugin>
    </plugins>
    <assembly>
        <id>1.0</id>
        <formats>
            <format>tar.gz</format>
        </formats>
        <dependencySets>
            <dependencySet>
                <useProjectArtifact>false</useProjectArtifact>
                <outputDirectory>lib</outputDirectory>
                <unpack>false</unpack>
            </dependencySet>
            <dependencySet>
                <useProjectArtifact>false</useProjectArtifact>
                <!-- 包含本地jar -->
                <scope>system</scope>
                <outputDirectory>lib</outputDirectory>
                <unpack>false</unpack>
            </dependencySet>
        </dependencySets>
        <fileSets>
            <fileSet>
                <directory>bin</directory>
                <outputDirectory>bin</outputDirectory>
                <fileMode>0755</fileMode>
            </fileSet>
            <fileSet>
                <directory>src/main/resources/</directory>
                <outputDirectory>conf</outputDirectory>
                <fileMode>0644</fileMode>
            </fileSet>
            <fileSet>
                <directory>src/main/resources/mapper</directory>
                <outputDirectory>conf/mapper</outputDirectory>
                <fileMode>0644</fileMode>
            </fileSet>
            <fileSet>
                <directory>target</directory>
                <outputDirectory>lib</outputDirectory>
                <includes>
                    <include>*.jar</include>
                </includes>
            </fileSet>
            <fileSet>
                <outputDirectory>logs</outputDirectory>
                <fileMode>0755</fileMode>
                <excludes>
                    <exclude>**/*</exclude>
                </excludes>
            </fileSet>
            <fileSet>
                <outputDirectory>tmp</outputDirectory>
                <fileMode>0755</fileMode>
                <excludes>
                    <exclude>**/*</exclude>
                </excludes>
            </fileSet>
        </fileSets>
    </assembly>

     

    展开全文
  • 很久没写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>
    

    可以运行

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

    展开全文
  • 文章目录跳过Maven 打包时的测试,跳过Maven 打包测试1、使用Maven 插件2、使用打包参数【推荐】 跳过Maven 打包时的测试,跳过Maven 打包测试 1、使用Maven 插件 修改POM文件 <project> [...] <build...
  • 1.maven打包java、scala混合项目 在使用 maven-shade-plugin 插件打包java、scala混合项目的过程中,发现执行mvn package命令打包的jar包中没有scala类, 经发现maven的默认compile不会编译scala类。 1.1 经搜索...
  • maven打包

    万次阅读 2018-04-24 15:17:57
    maven打包时控制台输出的日志乱码 [WARNING] F:\oxygenworkspace\myproject\src\main\java\com\demo\constants\SqlIdConstants.java:643: ���� - ���@see: "[�����/����]����ѡ��"...
  • Maven 打包问题

    万次阅读 2020-05-06 13:09:32
    Maven 打包问题1、问题描述2、问题分析3、问题解决4、总结 1、问题描述 今天给聚合工程统一打包时出现这样一个异常packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ ...
  • maven打包三种方式

    万次阅读 2018-05-23 17:32:12
    方法一:cmd 控制台打包(比较不推荐) 首先安装maven插件百度下载一个,配置环境变量什么的~在cmd控制台能mvn version能有数据出现。 打包只需要到项目的根目录下~在cmd敲入mvn package.不推荐原因:报错后的报错...
  • Maven打包web项目方式及步骤

    千次阅读 2018-09-09 17:47:52
    Maven打包web项目方式及步骤 我最近学习的打包方式有两种,分为如下: 第一种是通过命令行打包:要知道maven常用的命令 第二种是通过eclipse打包:简单方便就可以打包,是普遍使用的方式 一、通过eclipse打包web...
  • Maven打包JavaWeb项目的两种方式

    千次阅读 2018-03-15 15:14:33
    Maven打包web项目方式及步骤 我最近学习的打包方式有两种,分为如下: 第一种是通过命令行打包:要知道maven常用的命令 第二种是通过eclipse打包:简单方便就可以打包,是普遍使用的方式 一、通过eclipse打包...
  • maven打包时跳过测试

    万次阅读 多人点赞 2018-04-18 11:45:17
    准备打包maven package),没想到在执行到TEST阶段报错。百思不得其解,决定跳过测试去打包,然后部署。 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test 在运行mvn ...
  • maven打包失败

    千次阅读 2017-01-12 17:08:20
    maven打包失败
  • SpringBoot利用Maven打包

    千次阅读 2020-09-18 00:45:03
    第一章 1.2 SpringBoot应用打包方式 利用Maven打jar包
  • springboot maven 打包的两种方式

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

    千次阅读 2018-09-07 11:18:17
    下面是整理的springboot通用maven打包配置 &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;...
  • maven 打包Could not resolve dependencies for project 1.maven 打包Could not resolve dependencies for project 项目上使用的是idea ide的多模块话,也就是父子工程,需要模块之间的依赖,比如说服务模块依赖协议...
  • maven打包命令

    万次阅读 2019-02-19 00:22:55
    一般的maven项目打包命令是:mvn clean package mvn clean 打包前清理掉之前有过打包的文件夹target mvn compile 项目编译 mvn package 开始项目打包 执行这步可以不用执行compile了 package包括了编译、打包这两步 ...
  • Maven 打包 package install deploy-

    万次阅读 2015-08-12 16:59:25
    Maven 打包 package install deploy
  • IDEA中Maven项目打包方式

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

    千次阅读 2018-03-08 10:24:14
    Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现”no main manifest attribute, in xxx.jar”(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等...
  • 具体表现在maven打包时报错: 使用的命令是mvn clean package -Dmaven.test.skip 解决方法 指定要执行的settings.xml配置文件,原因可能是命令行执行的settings.xml文件和实际的不符,使用如下命令 mvn clean ...
  • maven打包加时间戳

    万次阅读 2016-02-17 15:13:48
    maven打包加时间戳方法总结基于Maven的项目,发布时需要打包,如tar.gz。web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为myproject.war。而我希望的名字为myproject...
  • maven打包配置resources

    千次阅读 2016-11-09 11:11:52
    相关链接:...maven打包时,默认的会寻找项目中的 src/main/resources 寻找资源文件,打包到classes下 但是,有时我们会将资源文件放置到别的目录中,此时只需要配置如下 ... ..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,534
精华内容 57,813
关键字:

maven打包方式