精华内容
下载资源
问答
  • maven项目发布生成可运行的jar文件,发布到服务器直接运行
  • 在别的项目中使用通过Maven安装生成的项目的jar包首先我在hello world项目中通过mvn clean install 命令构建hello world项目,同时会将这个项目的jar包(hello-world-0.1-SNAPSHOT.jar)复制一份到本地maven仓库;...

    在别的项目中使用通过Maven安装生成的项目的jar包

    首先我在hello world项目中通过mvn clean install 命令构建hello world项目,同时会将这个项目的jar包(hello-world-0.1-SNAPSHOT.jar)复制一份到本地maven仓库;

    那么其他的maven项目需要引用hello world 项目也就可以直接通过修改pom.xml文件中引用就可以了。

    1、mvn archetype:generate -DgroupId=org.vincent.maven -DartifactId=useHelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    新建useHelloWorld项目,使用上面的hello world项目,
    项目目录路径图:

    编辑项目下的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">
        <!--所有的Maven项目都必须配置这四个配置项-->
        <modelVersion>4.0.0</modelVersion>
        <!--groupId指的是项目名的项目组,默认就是包名-->
        <groupId>cn.vincent.maven</groupId>
        <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"-->
        <artifactId>hello-world</artifactId>
        <!--version指的是版本,这里使用的是Maven的快照版本-->
        <version>0.1-SNAPSHOT</version>
        <!--  最后打包的产品名称使用这个格式 <artifactId>- <version>. <extension>(比 如:myapp-1.0.jar)。 -->
        <name>第一个关于maven的项目 </name>
    
        <properties>
            <!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
         <dependencies>
            <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <scope>test</scope>
            </dependency>        
        </dependencies>
    </project>

    App.java文件代码

    package org.vincent.maven;
    import  cn.vincent.maven.helloworld.HelloWorld;//引用hello world项目资源
    /**
     * Hello world!
     *
     */
    public class App 
    {
        public static void main( String[] args )
        {
            HelloWorld helloworld=new HelloWorld();
            System.out.println( "Hello World!"+helloworld.sayHello() );//sayHello函数返回Hello maven
        }
    }
    
    cd useHelloWorld 进入项目根目录下
    mvn clean compile package 执行清理,编译,打包 过程。
    执行过程如下

    但是在执行的时候发生了找不到类的情况,一个可能的情况是 通过 -cp参数指定了用户类路径后,类加载器只到 -cp指定的路径下找寻class文件。而不去maven本地库中寻找class文件。
    通过执行:
    java -cp target/useHelloworld-1.0-SNAPSHOP.jar org.vincent.maven.App发生找不到HelloWorld类情况。

    所以需要更改pom.xml 文件,相比原来就是增加了build节点,配置了maven-shade-plugin,使得生产可执行的jar库。再次执行时候不用指定 -cp参数。

    <?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">
        <!--所有的Maven项目都必须配置这四个配置项-->
        <modelVersion>4.0.0</modelVersion>
        <!--groupId指的是项目名的项目组,默认就是包名-->
        <groupId>cn.vincent.maven</groupId>
        <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"-->
        <artifactId>hello-world</artifactId>
        <!--version指的是版本,这里使用的是Maven的快照版本-->
        <version>0.1-SNAPSHOT</version>
        <!--  最后打包的产品名称使用这个格式 <artifactId>- <version>. <extension>(比 如:myapp-1.0.jar)。 -->
        <name>第一个关于maven的项目 </name>
    
        <properties>
            <!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
        <build>
            <plugins>
                <!-- 设置编译插件 -->
                <plugin>
                    <groupId>
                            org.apache.maven.plugins
                    </groupId>
                    <artifactId>
                        maven-compiler-plugin
                    </artifactId>
                    <version>3.5</version>
                    <configuration>
                        <source>1.8</source> <!-- 源代码使用的开发版本 -->
                        <target>1.8</target>  <!-- 需要生成的目标class文件的编译版本 -->
                    </configuration>
                </plugin>
    
                <!--  声明生成可执行的jar文件 -->
                  <plugin>
                    <groupId>
                            org.apache.maven.plugins
                    </groupId>
                    <artifactId>
                        maven-shade-plugin
                    </artifactId>
                    <version>2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <transformers>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <mainClass>cn.vincent.maven.helloworld.HelloWorld</mainClass>
                                        <!-- 配置maven-shade-plugin 插件 为生成可执行的jar 文件 -->
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
    
        </build>
    
    
         <dependencies>
            <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <scope>test</scope>
            </dependency>        
        </dependencies>
    </project>
    

    然后通过mvn clean compile package 编译打包
    再次执行如下:成功

    展开全文
  • mavenbuild无法生成class文件

    千次阅读 2019-01-21 17:54:01
    把项目的properties属性里的Javacompiler --&gt; building --&gt; abort build when build path errors occur 前的勾去掉了这样就可以了

    把项目的properties属性里的Javacompiler --> building --> abort build when build path errors occur 前的勾去掉了这样就可以了

    展开全文
  • 本文将讲解如何通过Maven生成jar包并安装到本地仓库(包括将当前项目打包安装仓库到本地以及安装从外部获得的单独jar包),完成下面的操作需要安装Maven并了解一些基础的命令使用,想了解Maven的一些基础概念,可以...

    前言

    本文将讲解如何通过Maven生成jar包并安装到本地仓库(包括将当前项目打包安装仓库到本地以及安装从外部获得的单独jar包),完成下面的操作需要安装Maven并了解一些基础的命令使用,想了解Maven的一些基础概念,可以查看我的这篇文章,此外本文就不自己从零构建一个Maven项目了,而是采用IDEA自带的模板来演示样例。

    创建一个 Maven 项目

    在正式讲解之前,我们先创建一个简单的Maven项目:

    image-20201004183251000

    image-20201004183703574

    然后在src/main/java/目录下,创建一个util/Demo.java文件:

    image-20201004185251975

    生成 jar 包

    然后在项目根目录下执行mvn clean install命令,当然也可以直接使用IDEA集成的Maven插件直接点击:

    然后就可以在自己的本地仓库(我的本地仓库位置是D:/jar/)中根据groupIdartifactId来在对应文件夹中找到自己项目生成的jar包:

    image-20201004184955587

    测试项目 jar 包

    在测试我们刚才生成的jar包是否可以正常使用之前,我们先新建一个Maven项目,方法同上,并新建一个SumTest.java来做测试准备,为了方便,就不使用junit了:

    image-20201004190355268

    然后在pom.xml中引入我们的自己生成jar包的坐标(详细信息见本文的第二张图):

    <dependencies>
        <dependency>
            <groupId>com.butterfly.maven</groupId>
            <artifactId>demo</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
    

    然后就可以发现,可以正常使用我们刚刚项目生成的jar包:

    image-20201004190538865

    引入外部 jar 包到本地仓库

    有时我们可能从外部或者非Maven项目得到一个外部的jar包,也想直接引入到本地仓库供Maven项目使用,而不是每次都要在项目中复制粘贴jar包,那么接下来的方法可能会对你有所帮助。

    首先,我们需要先准备一个jar包文件,为了方便,我们就直接使用上述项目中生成的jar包,然后将jar复制到某个文件夹(我这里是复制到了D:/Temp/,并修改jar包名字为demo.jar):

    image-20201004191116357

    然后打开cmd,输入以下命令(为了方便,我进行了换行,在实际输入时需要连续,仅通过空格分割每一个配置):

    mvn install:install-file 	
    	-Dfile=D:\temp\demo.jar      # 配置 jar 包所在位置
    	-DgroupId=com.abc.maven      # 配置生成 jar 包对应的 groupId,为了区别上文中的 groupId, 这里做了修改
    	-DartifactId=demo            # 配置生成 jar 包对应的 artifactId
    	-Dpackaging=jar              # 配置文件的打包方式, 这里自然应该是 jar
    	-Dversion=1.0.0              # 配置版本号, 这里只要符合 Maven 的版本命名规范即可
    

    然后我们就可以在本地仓库中,根据配置的groupIdartifactId找到我们引入的jar包:

    image-20201004192200968

    测试外部引入 jar 包

    同样,我们需要现在pom.xml引入jar包的坐标,为了证明有效,需要把上文中的com.butterfly.maven的坐标移除:

    <dependencies>
        <dependency>
            <groupId>com.abc.maven</groupId>
            <artifactId>demo</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
    

    然后进行测试,可以发现也可正常使用:

    image-20201004192857930

    小结

    本文主要讲解了如何使用Maven生成项目jar包并引入到本地仓库以及将外部jar包引入到本地仓库,希望对你有所帮助。

    展开全文
  • idea打开maven Project面板方式一:方式二: 快捷键:Ctrl+Shift+A 出现一个搜索小窗口输入maven找到 maven Project maven Project面板右键install,如下图

    idea打开maven Project面板

    方式一:

    这里写图片描述

    方式二:
    快捷键:Ctrl+Shift+A 出现一个搜索小窗口输入maven找到 maven Project
    这里写图片描述

    maven Project面板

    这里写图片描述

    右键install,如下图

    这里写图片描述

    展开全文
  • maven项目生成jar包运行

    千次阅读 2019-01-05 22:13:26
    maven项目生成相应的jar包进行运行,之前一直是生成war包,进行项目运行,与jar包不同的是war包在运行时会先放入Tomcat中,利用外部的Tomcat进行运行,而jar包是通过内置的Tomcat进行运行的。 我这里使用的编辑器...
  • 自定义基于maven插件的代码生成

    千次阅读 热门讨论 2019-01-09 19:24:47
    目录前言具体实现1. pom.xml2. MoJo的代码3. controller模板遇到的问题1. install出错2. 执行插件目标generator命令报错3....最近研究了一下maven的自定义插件,之前用过maven中的mybatis-gener...
  • 无论怎么都没法在target下生成,调用方法疯狂报错 请检测pom.xml文件 这里是否有这个! 找了一中午的错误,快崩溃了
  • maven打包无法生成target目录

    千次阅读 2020-02-23 00:22:41
    自己的springboot项目在执行和调试的时候一直都有target目录,但是当打包的时候执行package竟然发现无法打包出jar文件,执行clean后执行mvn package也无法生成target目录,更没有class文件,在找了以前项目的build配置后...
  • Failed to create parent directories for tracking file /usr/local/maven/repository/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom 报错解释: 报错含义为: ...
  • Maven 打包生成-source.jar源码

    千次阅读 2019-05-05 22:03:29
    maven-source-plugin 插件可以用来生成项目源码-source.jar文件 使用命令行 在项目路径下使用打开命令行工具(cmd/shell) mvn source:jar 绑定到项目构建生命周期 <build> <plugins> <...
  • java做web开发,导致很多人不知道使用Java如何开发普通的项目,这里我们做个简单的介绍。 java项目一般都是使用脚本启动,比如windows上的bat文件和linux上的sh文件,而要写这些...第一步:使用maven自带骨架maven-arc
  • maven打包没有生成jar

    千次阅读 2020-07-24 13:37:21
    可以用maven命令打包 1.1进入项目路径 1.2执行命令 mvn clean package,会看到“BUILD SUCCESS” 二、idea 可视化界面打包, 1.确保pom.xml里配置了主清单 <configuration> <mainClass> ...
  • Maven仓库和插件

    千次阅读 2018-05-30 11:38:18
    Maven仓库的概念 在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。 Maven在某个统一的位置存储所有项目共享的构建,这个位置就称之为仓库。 任何构件都有唯一的坐标,Maven根据这个坐标定义...
  • 右击主目录选择:Open in Terminal 在生成的控制台输入: mvn idea:module 回车便自动生成iml文件啦! 双击下主目录就可以看见啦
  • 最近在给公司项目整合sonar,遇到的一连串问题特此记录。 单元测试执行时会打印一些中文日志,在启动时正常展示,但是在mvn test执行过程中和最终jacoco生成的测试报告中却显示为...3.增加如下配置,解决无法生成jaco
  • Maven工程生成源码包jar包

    千次阅读 2019-05-16 11:27:58
     为了生成源码包,你只需要在项目或者模块的pom.xml中增加如下插件,然后执行mvn clean install deploy即可: < build > < plugins > < plugin > < groupId > org.apache.maven.plugins groupId > ...
  • Maven生成JavaDoc

    千次阅读 2017-10-19 22:05:43
    生成的javadoc文件名称 tags : 自定义标签组 tag : 自定义标签 name : 自定义标签的名称 placement : maven提供的8种标签范围 head : 描述 1.4 接口展示 public interface UserService...
  • 自动生成:mvn install:install-file -Dfile=jar包的位置 -DgroupId=jar包的groupId -DartifactId=jar包的artifactId -Dversion=jar包的version -Dpackaging=jar
  • Mavenmaven打包生成可执行jar文件

    万次阅读 多人点赞 2016-12-30 16:23:59
    maven默认打包生成的jar是不能够直接运行的,因为在jar文件的META-INF/MANIFEST.MF文中没有Main-Class一行,为了生成可执行的jar文件,需要借助maven的插件,maven-shade-plugin,配置该插件如下:
  • idea导入maven项目无法生成iml文件的问题 前段时间在使用idea的时候出现了一个问题 导入的maven项目每次启动后启动类就无法正常启动 经过对比后发现启动类的项目模块字体比较细 重新导入该模块就可以了 但是idea...
  • Maven仓库理解和优先级

    千次阅读 2019-06-19 14:28:57
    使用 maven 也有一段时间了,有时候在配置 repository,mirror,profile的时候,总会导致 jar 拉取不到。所以认真的分析了 maven 获取 jar 包时候的优先级。 Maven 仓库的分类 仓库分类:本地仓库和远程仓库。Maven...
  • maven 如何生成项目脚手架

    千次阅读 2018-07-23 16:43:12
    1、根据已经有的配置好的项目,进入到项目的根目录,如本例,进入baoxian-goods ... 3、进入 baoxian-goods\target\generated-sources\archetyep 执行 mvn clean install 命令,将脚手架安装到本地,就可以使...
  • springboot 利用 docker-maven插件生成docker镜像并推送到镜像仓库 一、环境配置 java、maven 、docker 安装及环境变量配置 &nbsp;&nbsp;&nbsp;&nbsp;1. maven配置文件修改 &lt;server...
  • 将java生成可执行exe文件,可以直接在win下双击运行
  • Maven_生成项目站点报告

    千次阅读 2016-09-18 15:21:14
    Maven_可以生成站点报告, 可以较为方便的实现对项目的管理。 生成站点报告的命令: mvn site 项目地址: http://pan.baidu.com/s/1o8jfudW 下面展示下重要的配置:    FirstMaven  一个测试项目 ...
  • 自定义jar包较多时导入到maven本地仓库不方便,此工具类可以自动将jar包导入到maven本地仓库并自动生成dependency,用的是java语言
  • Maven打包生成源码包和Javadoc包

    万次阅读 2016-12-12 19:35:46
    开发中我们经常需要将项目 <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.5.1</version
  • maven搭建私有仓库过程记录

    千次阅读 2019-08-14 15:51:46
    一、下载maven https://maven.apache.org/download.cgi 二、下载nexus 百度网盘地址:https://pan.baidu.com/s/1hr4yG0c 三、安装maven 1.1 将文件解压到D:\apache-maven-3.5.4目录下: 1.2 新建环境变量...
  • 由于jacoco-maven-plugin与maven-surefire-plugin插件均使用argLine参数,导致surefire覆盖了jacoco的参数,而无法生成jacoco.exec,maven报错:Skipping JaCoCo execution due to missing execution data file ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 233,223
精华内容 93,289
关键字:

更新maven无法生成maven库