精华内容
下载资源
问答
  • 一,打包的前提是已经安装了maven,如果没有安装,可以先安装,教程网上有很多,在dos下,运行命令: mvn -v,出现如下信息说明已经成功安装maven. 二,如果程序运行无异常,需要打包,注意有几个坑(心酸)...

    本人小白一枚,前端时间用idea写了一个springboot程序,需要达成jar,可是用idea自带的打包工具,jar运行时总是报错,所以改用maven,最后把方法分享给大家.

    一,打包的前提是已经安装了maven,如果没有安装,可以先安装,教程网上有很多,在dos下,运行命令: mvn -v,出现如下信息说明已经成功安装maven.

    二,如果程序运行无异常,需要打包,注意有几个坑(心酸),首先把程序中的main()删除,特别是工具类中,只留启动类中的main(),然后就是删除测试的字节码文件.如下:

    下面开始打包.

    三,使用maven打包很简单,如下:选择下图中的package,直接运行

    最后生成jar包的地址,可以直接复制出来,如下图:

     

    展开全文
  • maven项目打包

    2017-12-29 15:44:43
    那么,有时候如果我们需要对maven进行打包,那要如何操作呢? 其实很简单,但是前提是你的电脑中已经安装好了maven 通过cmd进入到你的maven项目路径下,输入" maven package ",即可 打包后,在项目中的target文件中...

    之前有讲,通过spring官网可快速生产一个maven项目

    那么,有时候如果我们需要对maven进行打包,那要如何操作呢?

    其实很简单,但是前提是你的电脑中已经安装好了maven

    通过cmd进入到你的maven项目路径下,输入" maven package ",即可

    打包后,在项目中的target文件中会生成一个XXX.jar的文件

    可以在cmd中运行着jar,也可以将之通过git的命令" scp 文件名 复制到的路径",复制到虚拟机中去运行

    运行jar的命令: Java -jar XXX.jar


    [个人理解,如有错误或不足,请各位大佬指点]


    展开全文
  • 用mac在idea中建立了基本的Netty客户端和服务器端通信项目,如何生成jar包,并且可以在...linux系统上已经有了java运行环境和MAVEN环境。 自己打包后在Linux上用java -jar 运行是报无法找到main class 求大神帮忙!!!
  • 用mac在idea中建立了基本的Netty客户端和服务器端通信项目,如何生成jar包,并且可以在...linux系统上已经有了java运行环境和MAVEN环境。 自己打包后在Linux上用java -jar 运行是报无法找到main class 求大神帮忙!!!
  • RT,在jenkins如何打包maven管理的android项目。 ant打包已经试过,没有效果,这个只能打包自由风格的项目吧; maven应该可以打包android项目的,只要配置好pom.xml文件,结果报错了 我是根据这篇文章配置的pom...
  • 有了如下样子的 pom.xml 后,在项目上运行 maven命令 package -P product 这只是个备忘,里面可以看到如何将需要的文件拷贝到target 下的指定目录。以及这是一个可以如下运行的jar打包: java -jar index_tool_...

    有了如下样子的 pom.xml 后,在项目上运行 maven命令  package -P product

    这只是个备忘,里面可以看到如何将需要的文件拷贝到target 下的指定目录。以及这是一个可以如下运行的jar打包:

    java -jar  index_tool_84_2.0.jar

    其不需要指定依赖的lib,因为在清单文件中已经指定了(细看poi的 Class-Path),并且lib已经被拷贝到 target下了。

    其中配置文件在config下,Class-Path已经指定了 ./config ,故程序在根下找配置,即可找到 config下的配置文件。

    忠告:此为原样不懂的拷贝文件,如直接使用,必定是无法正常执行的。仅供学习其中的部分配置。

     

    <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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.mapbar</groupId>
      <artifactId>index_tool_84</artifactId>
      <packaging>jar</packaging>
      <version>2.0.0-SNAPSHOT</version>
      <name>index tools 2.0</name>
      <url>http://maven.apache.org</url>
        <profiles>
            <profile>
                <id>product</id>
                <properties>
                    <package.env>product</package.env>
                </properties>
            </profile>
        </profiles>
    <build>
        <resources>
            <resource>
                <directory>bin/</directory>
                <includes>
                    <include>**/*.class</include>
                </includes>
            </resource>
            <resource>
                <directory>resources/${package.env}</directory>
                <targetPath>../config</targetPath>
            </resource>
            <resource>
                <directory>
                    .
                </directory>
                <includes>
                    <include>
                        readme.txt
                    </include>
                </includes>
                <targetPath>..</targetPath>
            </resource>
            <resource>
                <directory>lib</directory>
                <targetPath>../lib</targetPath>
            </resource>
        </resources>

          <plugins>
              <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-jar-plugin</artifactId>
               <configuration>
                   <archive>
    <!--                    <manifestFile> -->
    <!--                      src/main/resources/META-INF/MANIFEST.MF -->
    <!--                    </manifestFile> -->
                       <manifest>
                           <addClasspath>true</addClasspath>
                           <classpathPrefix>lib/</classpathPrefix>
                           <mainClass>
                               com.mapbar.search.index.DataReview
                           </mainClass>
                       </manifest>
                       <manifestEntries> 
                                   <Class-Path>
                                       . ./config lib/agent.jar lib/airsearchnew.jar lib/avmserver.jar lib/classes12.jar lib/database.jar lib/DelFile.jar lib/GeoService.jar lib/highlite.jar lib/HttpGet.jar lib/jxl.jar lib/log.jar lib/lucene-analyzers-common-4.0.0.jar lib/lucene-analyzers-smartcn-4.0.0.jar lib/lucene-core-4.0.0.jar lib/lucene-queries-4.0.0.jar lib/lucene-queryparser-4.0.0.jar lib/lucene-spatial-4.0.0.jar lib/mail.jar lib/mapbar-util.jar lib/MapbarSeg4Index_new.jar lib/mapbar_index_dat.jar lib/pinyin4j-2.5.0.jar lib/spatial4j-0.3.jar
                                   </Class-Path>
                              </manifestEntries>
                   </archive>
               </configuration>
           </plugin>
           <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
          </plugins>
        <finalName>index_tool_84_2.0</finalName>
      </build>
    </project>

    展开全文
  • 我们在用Spring Cloud开发微服务时,往往会使用Maven来管理项目并打包成jar文件,最后往往也需要把jar文件进一步构建成Docker镜像,从而可以在Docker容器中运行微服务。 那么有没有一种自动构建Docker镜像的方法呢...

    我们在用Spring Cloud开发微服务时,往往会使用Maven来管理项目并打包成jar文件,最后往往也需要把jar文件进一步构建成Docker镜像,从而可以在Docker容器中运行微服务。

    那么有没有一种自动构建Docker镜像的方法呢?

    这是一个非常常见的需求,因此大佬们早就已经为我们开发了Maven插件来自动完成这个工作。

    实际上已经有不止一款类似的插件,但本文将只介绍用得最多一款:spotify公司开发的docker-maven-plugin插件。

    下面我们来详细探讨如何使用Maven插件构建Docker镜像。

     

    2

    使用简单配置方式

     

    假如我们开发了一个account-service的微服务。

    1. 添加docker-maven-plugin插件

     

    在项目的pom.xml文件中配置插件:

    •  
    <plugin>  <groupId>com.spotify</groupId>  <artifactId>docker-maven-plugin</artifactId>  <version>0.4.13</version>  <configuration>    <imageName>account-service:1.0</imageName>    <baseImage>java</baseImage>    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>    <resources>      <resource>        <targetPath>/</targetPath>        <directory>${project.build.directory}</directory>        <include>${project.build.finalName}.jar</include>      </resource>    </resources>  </configuration></plugin>

     

    这是该插件的简单使用方式的配置,需要在pom.xml里配置以下配置项:

    • imageName:用于指定镜像名称,分号后面的1.0是标签名称。

    • baseImage:用于指定基础镜像,等同于Dockerfile中的FROM指令。

    • entrypoint:类似于Dockerfile的ENTRYPOINT指令,代表运行镜像时执行的指令。

    • resources.resource.directory:用于指定需要复制的文件的根目录,${project.build.directory}表示target目录。

    • resources.resource.include:用于指定需要复制的文件。${project.build.finalName}.jar指的是maven编译打包后的jar包。

    2. 构建Docker镜像

     

    在项目的根目录(pom.xml的同级目录)执行以下命令:

    •  
    mvn clean package docker:build

    Maven的日志会输出类似于如下的内容:

    •  
    [INFO] Building image account-service:1.0Step 1 : FROM java ---> 861e95c114d6Step 2 : ADD /acount-service-1.0.jar // ---> 035a03f5b389Removing intermediate container 2b0e70056f1dStep 3 : ENTRYPOINT java -jar /acount-service-1.0.jar ---> Running in a0149704b949 ---> eb96ca1402aaRemoving intermediate container a0149704b949Successfully built eb96ca1402aa

    可以看到,我们已成功构建了Docker镜像。

    执行如下命令,即可查看刚刚构建的镜像。

    •  
    docker images

    输出如下:

    •  
    •  
    REPOSITORY              TAG        IMAGE ID          CREATED             SIZEaccount-service         1.0      eb96ca1402aa      39 seconds ago      685 MB

    可以看到,镜像已经存在了。

    3. 运行镜像

     

    我们可以运行镜像来测试一下我们的服务是否可以正常工作

    •  
    docker run -d -p 8080:8080 account-service:1.0

    我们会发现该Docker镜像会很快地启动

    4. 测试服务

     

    在Chrome上使用Postman插件发送rest请求到我们的服务地址http://<host>:8080/v1/account-service/account/<id>,测试是否可以正常访问并获取服务的响应。

    注意:以上是我的服务的url,请根据你在spring中配置的url进行访问。

     

    3

    使用Dockerfile方式

     

    之前的示例中,我们直接在pom.xml中设置了一些参数,但插件支持的配置参数是比较有限的。而在实际项目开发中,大部分情况下需要通过编写Dockerfile来构建镜像。

    该插件当然也支持这种方式。

    1. 编写Dockerfile

     

    我们可以在account-service/src/main目录下创建一个docker 目录下,在下面新建一个Dockerfile文件,例如:

    •  
    FROM java:8ADD account-service-1.0.jar app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]

    2. 修改pom.xml

    <plugin>  <groupId>com.spotify</groupId>  <artifactId>docker-maven-plugin</artifactId>  <version>0.4.13</version>  <configuration>    <imageName>account-service:1.0</imageName>    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>    <resources>      <resource>        <targetPath>/</targetPath>        <directory>${project.build.directory}</directory>        <include>${project.build.finalName}.jar</include>      </resource>    </resources>  </configuration></plugin>

    可以看到,pom的配置变得简单了,我们不需要再指定baseImage和entryPoint,这些信息都转移到Dockerfile文件里了,而我们只需要使用dockerDirectory指定Dockerfile所在的路径即可。

    这样,我们就可以使用Dockerfile构建Docker镜像了。只需要运行同样的maven打包命令:

    •  
    mvn clean package docker:build

     

    4

    绑定到某个phase来构建Docker镜像

    如果我们希望简化maven打包命令,想要在执行例如mvn clean package 时,插件就被自动执行,并为我们构建Docker镜像。

    要想实现这点,我们只需将插件的goal绑定在某个phase即可。

    比如,我们可以将插件的build目标绑定到package打包阶段。build 目标表示使用maven插件构建Docker镜像的goal,package phase表示使用maven编译并打包jar文件的阶段。也就是说在maven编译打包jar文件后,立即执行插件的build目标来构建Docker镜像。

    配置如下:

    <plugin>  <groupId>com.spotify</groupId>  <artifactId>docker-maven-plugin</artifactId>  <version>0.4.13</version>  <executions>    <execution>      <id>build-docker-image</id>      <phase>package</phase>      <goals>        <goal>build</goal>      </goals>    </execution>  </executions>  <configuration>    <imageName>account-service:1.0</imageName>    <baseImage>java</baseImage>    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>    <resources>      <resource>        <targetPath>/</targetPath>        <directory>${project.build.directory}</directory>        <include>${project.build.finalName}.jar</include>      </resource>    </resources>  </configuration></plugin>

     

    由配置可知,我们只需添加如下配置:

    <executions>  <execution>    <id>build-docker-image</id>    <phase>package</phase>    <goals>      <goal>build</goal>    </goals>  </execution></executions>

     

    有了上面的配置,我们可以简单的执行以下命令,Maven就可以为我们自动编译打包成jar文件,并自动构建Docker镜像。

    •  
    mvn clean package

     

    5

    推送镜像到Docker仓库

    我们也可使用这个Maven插件来自动将构建好的镜像push到Docker仓库,如Docker Hub。

    首先需要在maven的setttings.xml文件中配置访问Docker Hub server的用户信息。

    •  
    <server>  <id>docker-hub</id>  <username>Docker Hub用户名</username>  <password>Docker Hub密码</password>  <configuration>    <email>Docker Hub邮箱</email>  </configuration></server>

     

    然后修改pom.xml,示例:

    <plugin>  <groupId>com.spotify</groupId>  <artifactId>docker-maven-plugin</artifactId>  <version>0.4.13</version>  <configuration>    <imageName>account-service:1.0</imageName>    <baseImage>java</baseImage>    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>    <resources>      <resource>        <targetPath>/</targetPath>        <directory>${project.build.directory}</directory>        <include>${project.build.finalName}.jar</include>      </resource>    </resources>     <!-- 必须与maven配置文件settings.xml中配置的server.id一致 -->    <serverId>docker-hub</serverId>  </configuration></plugin>

    如上,添加serverId段落,并引用settings.xml中的server的id即可。

     

    这样就配置好了。但需要注意,我们在执行maven命令时,需要添加pushImage的标识,才会自动push镜像。如下所示:

     

    •  
    mvn clean package -DpushImage
    展开全文
  • 我有三个Maven模块项目A、B、C,B引用了A,C引用了B,C是web项目,当我把C项目add到Tomcat中并启动Tomcat后,项目报错,原因是A没有被打成jar包发布到项目的lib目录下,导致C找不到A的文件。可是当我把A Close ...
  • 实现过程前置环境:默认已经装好Jenkins、maven、docker和git,我的Jenkins也在docker容器中运行的,由于在Jenkins容器中默认无法使用docker命令,所以在Jenkins启动时需要加入以下参数:如果还是无法使...
  • maven基础学习(三)-简单实例(运行)

    千次阅读 2014-04-09 23:20:02
    1.在前面的博客中,我们已经成功通过maven构建了web项目,并将其编译,打包并安装到了本地仓库中,以供其他maven项目使用.  但是我们还没有成功运行此项目,当通过在cmd窗口执行java -jar target/maven-demo-1.0-...
  • 随着容器化部署方式的流行,各IT公司大部分已经完成了云原生架构实现,如何将 项目工程打包成镜像并运行?国外已有众多基于Maven插件实现的打包方案,本文 已实测并实现了几种常见的打包方式,比如谷歌公司的jib、...
  • ●在某一次的开发过程中,发现在pom文件中已经添加好了依赖以及版本号等,可是代码中并不能引用这些依赖。最终还是找到了解决办法:在...●多modules项目,新项目建立进行运行/打包的时候,出现如何解决Maven: Fa...
  • Maven项目管理工具 ...2、项目的管理:项目规模越来越大,需要拆分成多个子模块,模块之间的相互依赖关系需要统一管理,并且项目生命周期中的编译,打包,测试,运行等步骤都需要统一管理 l 如何
  • SpringBoot打成war包在tomcat或wildfly下运行

    千次阅读 多人点赞 2019-11-14 14:33:03
    SpringBoot打包形式 默认情况下,创建的SpringBoot项目是按照jar包形式来进行打包的。...创建项目没有什么难点,使用idea工具创建一个简单的maven项目即可,如果你的项目已经是springboot项目,想要修...
  • 我们接上章节内容继续,上一章我们已经完成了多模块项目的创建以及运行,那我们线上环境该如何打包部署呢?本章目标打包部署SpringBoot多模块项目到外部运行Tomcat容器中。构建项目我们直接复制一份上一章的代码,如...
  • 目前已经支持Mysql、Mysql8、Oracle、PostgreSQL与SQL Server,暂不对其他非主流数据库提供支持。(MySQL支持的比较好,其他数据库有什么问题可以在issue中反馈) 要求 本工具由于使用了Java 8的众多特性,所以要求...
  • 手把手教你如何在Docker环境下安装elastic-job-cloud 前言 准备工作 进入正题 编译EJC ...本文默认你本地已经安装好了Docker环境,同时也具备本地编译打包elastic-job-cloud的环境工具(Git, Maven,...
  • 如何在mac上运行已经打包好的jar项目 1. 如何用mac在当前文件夹下打开终端:(看图操作) 第一步:先对mac进行偏好设置(选择目标文件,在访达中选择服务) 第二步:对终端选项进行打勾,也可以进行快捷键设置,...
  • 微服务的Docker化部署

    2020-05-26 15:16:35
    如何将一个微服务打包成一个可以独立运行的Docker镜像呢?需要完成两个任务: (1)JDK环境的Docker化 (2)微服务的Docker化 制作JDK1.8的Docker镜像 Docker常用命令介绍 (1)查看Docker本地仓库中已经下载好的镜像 ...
  • 怎么创建Vue项目

    2020-08-20 19:08:52
    如何创建Vue项目 ...webpack是一个前端资源加载和打包的工具,和maven类似。 vue init webpack project1 运行这个命令后会在目录下自动生成project1这个文件夹,并且下载webpack模板。 project1项目包含
  • # 运行测试Case、编译打包、安装TTL库到Maven本地 ./mvnw install ##################################################### # 如果使用你自己安装的`Maven`,版本要求:maven 3.3.9+ mvn install 如何用IDE来开发时...
  • 本项目采用Springboot的maven插件进行打包打包结果:****.jar 部署方式:使用 nohup java -jar .jar >.log 2>&1 &的方式,后台启动项目,并在该路径下生成运行日志 数据设计 用户表:user ...
  • Quick Start只针对本地测试使用,所以一般用户不需要自己下载源码打包,只需要下载已经打好的包即可。不过也有部分用户希望在修改代码后重新打包,那么可以参考如下步骤: 修改apollo-configservice, apollo-admin...
  • 安装openjdk和maven 修改源代码、更改数据库连接地址 通过Maven编译、构建、打包源代码 在k8s中部署Eureka组件 在k8s中部署Gateway组件 在k8s中部署前端服务 在k8s中部署订单服务 在k8s中部署产品服务 在k8s中部署...
  • 2、克隆源代码到本地并打开,推荐使用IntelliJ IDEA,本地编译并安装到本地maven仓库 修改本地Host 127.0.0.1 ui.zhangshuzheng.cn 127.0.0.1 upms.zhangshuzheng.cn 127.0.0.1 cms.zhangshuzheng.cn ...
  • 完全解析jBPM4应用开发技术 9位工作流业内专家联袂推荐 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活、居家旅行”的必备...
  • 单点登录源码

    2018-01-09 20:56:08
    Maven | 项目构建管理 | [http://maven.apache.org/](http://maven.apache.org/) #### 前端技术: 技术 | 名称 | 官网 ----|------|---- jQuery | 函式库 | [http://jquery.com/](http://jquery.com/) Bootstrap | ...
  • Waterdrop FAQ/常见问题

    2020-11-27 12:25:38
    maven,sbt,gradle,都随你。 这也是我们建议开发者开发插件的方式。 <p>FAQ 2. 以集群模式(cluster)运行waterdrop,提示找不到:plugins.tar.gz 使用cluster模式提交前,...
  • 测试脚本要打包成jar或者apk包上传到设备上才能运行。 我们希望测试逻辑能够用Python编写,能够在电脑上运行的时候就控制手机。这里要非常感谢 Xiaocong He (@xiaocong),他将这个想法实现了出来(见xiaocong/...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

maven已经打包如何运行