精华内容
下载资源
问答
  • maven指定子项目打包

    2020-09-03 20:37:36
    在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。  例如A,B,P的继承关系为 P  |  —– A  |  —– B  即P包含A,B的module,每次打包P都会将A,B都打包。 ...

    Maven多个mudule只编译、打包指定module

    在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。 
    例如A,B,P的继承关系为


    —– A 

    —– B 
    即P包含A,B的module,每次打包P都会将A,B都打包。 
    假如我只修改了A模块,那么每次都要将B都一块打包吗?当然不是,maven提供了自定义参数:

    -pl, --projects
            Build specified reactor projects instead of all projects
    -am, --also-make
            If project list is specified, also build projects required by the list

    所以进入P目录,输入指令

    mvn install -pl A -am
    即可

    clean package deploy -U -Ptest -Dmaven.test.skip=true -pl A,B
     

    展开全文
  • Maven聚合项目子项目install问题

    千次阅读 2019-08-06 14:41:38
    maven聚合项目中,本人想在一个子项目中引用另外一个子项目时报错了,报错内容为 Failed to read artifact descriptor blala… 解决方法 查阅相关资料后,发现了这样一句话: 如果你有子项目引用了父项目的POM,...

    问题描述

    在maven聚合项目中,本人想在一个子项目中引用另外一个子项目时报错了,报错内容为pom文件中提示 Failed to read artifact descriptor blala…

    解决方法

    查阅相关资料后,发现了这样一句话:

    如果你有子项目引用了父项目的POM,但没有在父项目POM目录下执行安装操作(父目录下执行mvn install),这个问题就会出现。当一个子模块可能会依赖一个兄弟子模块而且去读取兄弟子模块的pom时,除非在父项目POM目录下至少执行一次安装,否则就会读取失败,即出现上述错误。

    展开全文
  • 在eclipse下构建maven项目,该项目由多个模块组成。 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面 ...

    在eclipse下构建maven项目,该项目由多个子模块组成。

    1.创建一个父项目

    NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面



    在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面


    ,在group id 和artifact id中输入你的group和artifact名称。我用的分别是A和B,选择完成。这时会在eclipse中生成一个项目,项目名是B。

    此时B的pom文件如下所示:

    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    3.   <modelVersion>4.0.0</modelVersion>  
    4.   
    5.   <groupId>A</groupId>  
    6.   <artifactId>B</artifactId>  
    7.   <version>0.0.1-SNAPSHOT</version>  
    8.   <packaging>pom</packaging>  
    9.   
    10.   <distributionManagement>  
    11.     <site>  
    12.       <id>website</id>  
    13.       <url>scp://webhost.company.com/www/website</url>  
    14.     </site>  
    15.   </distributionManagement>  
    16.   
    17.   <properties>  
    18.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    19.   </properties>  
    20. </project>  

    2.创建子项目

    2.1 将项目B中的src文件删除(可有可无,主要看个人需要)
    2.2 选中项目B,点击右键,选择NEW -->project-->maven-->maven Module,点击下一步,在出现的界面中输入子模块的名称C,点击下一步,出现Select an Archetype界面。这时选择maven-Archetype-site-quickStart或者maven-Archetype-webapp(构建web层时使用),然后选择完成,即生成子项目C。

    这时B的pom文件就变成了这样(和上面的比只是多了个modules标签):

    [html]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    3.   <modelVersion>4.0.0</modelVersion>  
    4.   
    5.   <groupId>A</groupId>  
    6.   <artifactId>B</artifactId>  
    7.   <version>0.0.1-SNAPSHOT</version>  
    8.   <packaging>pom</packaging>  
    9.   
    10.   <distributionManagement>  
    11.     <site>  
    12.       <id>website</id>  
    13.       <url>scp://webhost.company.com/www/website</url>  
    14.     </site>  
    15.   </distributionManagement>  
    16.   
    17.   <properties>  
    18.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    19.   </properties>  
    20.   <modules>  
    21.     <module>C</module>  
    22.   </modules>  
    23. </project>  

    这时构建B的子项目完成,构建其他的子项目和此类似。

    在构建第二个子项目D时可能在B中没有及时出现,这时只要把B项目刷新下就可以了。

    ps:

    其实在构建多模块的项目时,在选择父项目的类型时是可以选择任意的类型。选择项目类型的界面如下:

    对于这些非常规类型的项目,如果想要成为父项目,需要做如下一些改动:

    1.将pom.xml文件中的<packaging>jar</packaging>改为<packaging>pom</packaging>,若不换为pom则在打包的时候父项目会产生一个target文件;如果没有<packaging>pom</packaging>的可以在<version>0.0.1-SNAPSHOT</version>后面添加上这句话即可。

    2.删除除pom.xml外的所有文件,其中JRE System Library是不能直接删除的,需要选择中,并单击右键Bulid Path-->Remove from bilud path即可移除。

    这时的父项目就显得很干净整洁了。


    其实在普通的项目上是不允许构建子模块的,能否在一个项目下创建子模块,主要取决于是否有<packaging>pom</packaging>这个配置。如果有这个配置则任何项目都可以创建子模块,硬要这样创建的话整个项目会变的不伦不类。看来maven在判断一个项目是否可以创建子模块其实是取决于这个配置的。

    展开全文
  • maven子项目单独install

    2021-01-07 19:33:16
    ai 父项目包含 bigdata, carpool, queue-passenger, order-hall四个子项目,互相独立,但某天运维平台突然发生了一件奇怪的事儿,queue-passenger和order-hall无法正常编译,错误原因如下: 6:37:25,971[ERROR]...

    ai 父项目下包含 bigdata, carpool, queue-passenger, order-hall四个子项目,互相独立,但某天运维平台突然发生了一件奇怪的事儿,queue-passenger和order-hall无法正常编译,错误原因如下:

    6:37:25,971 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.5.2:install (default-install) on project dispatcher-carpooling: Failed to install metadata com.sq.ai.dispatcher:dispatcher-carpooling:1.0-SNAPSHOT/maven-metadata.xml: Could not parse metadata /u01/maven3/.m2/repository/com/sq/ai/dispatcher/dispatcher-carpooling/1.0-SNAPSHOT/maven-metadata-local.xml: in epilog non whitespace content is not allowed but got s (position: END_TAG seen ...\ns... @25:2)  -> [Help 1]

    异常的大概意思是在本地install  dispatcher-carpooling-1.0-SNAPSHOT时,生成的maven-metadata-local.xml文件中含有特殊字符,导致编译中断,停止。

    百度后,大体的结论是maven在生成maven-metadata-local.xml时,因网络等原因,导致字符错误。解决方法是删除机器文件maven-metadata-local.xml,重新编译即可。

    运维同学在编译机上找到maven-metadata-local.xml后并删除,确实解决了问题。

    但是疑惑是在构建queue-passenger或order-hall时,为什么会构建carpool项目?两者是平等的兄弟关系,不存在依赖。而bigdata项目的构建竟然不受carpool的影响。

    在运维平台,仔细对比maven命令时发现,

    bigdata 项目构建命令   clean install -U -Dmaven.test.skip=true -pl dispatcher-bigdata -am

    queue-passenger构建命令  clean install -DskipTests -U -e

    order-hall构建命令  clean install -DskipTests -U -e

    结论: pl参数指定构建子项目dispatcher-bigdata,am参数表示级联构建dispatcher-bigdata关联的项目  -U表示每次构建时强制重拉关联jar包的快照版本。如果没有pl参数,则构建父项目下的所有子项目。

    参数的详细说明参见https://www.cnblogs.com/hiver/p/7850954.html

     

     

     

    展开全文
  • 下午在eclipse新建了一个maven项目包含3个子模块包,分别是util工具业务模块,data-layer数据层dao模块和web controller视图层模块,如下图: 新建完成后发现下面2个包有红叉,因为期间jdk更改过一次,由1.7...
  • Maven 子项目

    2020-08-03 07:59:13
    使用maven搭建的子项目,其中包含web子项目和其他依赖子项目,在使用tomcat构建war的时候,会构建该web相对应的war,maven关联的其他子项目会以jar包的形式关联到lib中。 从而,使得web项目中可以引用其他包的类...
  • 在多模块的maven项目中 , 如果需要部署某个子模块 , 单独构建则会报错 , 如果构建整个项目 , 又会非常耗时 . maven为自定义构建部分项目提供了支持 : -pl, --projects 构建指定的模块,模块间用逗号分隔;适合无...
  • maven工程子项目消失了怎么办

    千次阅读 2016-10-25 09:37:12
    昨天git下来最新两个工程,首先解决了pom文件冒红问题,...父工程包含新建的两个工程。但是他们两个并没有独立出现。消失不见了。update project 也不行。 最后解决方法是。鼠标右击点击import 重新导入该工程即可!
  • 最近碰到问题 :web项目引用biz项目 ,启动时报错如下 Cannot find class [com.aa.service.inf.kms.client.DataSource] for bean with name 'DataSource' defined in URL [jar:file:/Users/aa/eclipse-workspace-...
  • maven对应多个子项目, 每个子项目都是一个单独运行的jar包 2. 项目结构: 五个 jar包; 一个common资源包 3. 思路: common 作为这五个jar的外部资源 五个jar单独导报 4: 配置 父级pom配置: 不可以加这个! 不...
  • 像下面这张图片一样,有的模块导入的时候是maven工程,但是有的是文件夹。 解决办法就是右键点击该文件夹,再点import,然后点击下面红色框框内的 然后next,finish,再等待一会儿会变成maven项目了。 ...
  • 一、项目结构图 二、父工程mybatis_dubbo_nacos_parent项目pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=...
  • Maven编译多子项目依赖

    万次阅读 2016-05-03 11:58:08
    之前做Android 的时候主要是用gradle(不过真心不熟),大概有点知道Maven的作用,这次来深圳某公司实习,老板叫用Maven 编译C++,虽然事实证明老板的想法有点错误,不过也基于这个,还是稍微正规的学了一发Maven...
  • 写这个笔记的原因是今天一个项目组想要在他本地运行我的工程,想直接给他个可运行的jar包,但是最近刚刚从eclipse换成idea,打包什么的还有些不习惯,怕给别人的jar包有问题,就想用解压工具看下里边的lib看下是否把...
  • 复杂的maven项目,通常包含多个模块项目,如果手工逐个去修改每个pom.xml,会非常的耗时耗力,而且容易出错和遗漏。 解决方案 借助maven的versions插件,可以比较容易的解决这个问题。方法如下: mvn versions...
  • 在多个模块的maven项目中,可以通过配置.idea/workspace.xml来配置多个子模块同时启动,如果有调试需求的同学,可以使用尝试一下。 二、workspace.xml中添加 <component name="RunDashboard"> <option ...
  • 新建一个maven父项目 在父类上新建springstart项目,记得把user default location这个√徐取消 然后把下图中农两处标红的名字写自己要建的子项目名称(两处名字一致) 然后一直点next,最后点finished就完成了 ...
  • 2. 导入完成之后,如果打开子项目没有maven依赖的dependency之类的jar包文件夹,则需要右键子项目,选 import as project &amp;amp;gt; 之后在独立出来的子项目右键 &amp;amp;gt; maven =&amp;amp;gt; ...
  • 最近在学习微服务的时候用到了Maven的聚合项目,但在创建好父项目之后,子项目中突然无法导入Web启动器有关的注解了。 先贴出项目目录。 于是我回过头去检查了一下,依赖包明明是导入了的。 如下: 为了还原这个...
  • IDEA 创建SpringBoot多级Maven父子项目

    千次阅读 多人点赞 2019-12-10 21:53:51
    IDEA 创建SpringBoot多级MAVEN父子项目一、环境准备1、JDK安装配置2、MAVEN安装配置3、IDEA破解版二、项目搭建1、创建顶级Maven项目附: 一级项目完整`pom.xml`配置2、创建二级Maven子项目附: 二级子项目完整`pom.xml...
  • maven-plugin 4、删除src目录 5、把父工程Install到 本地依赖中,以便接下来子模块可以依赖,IDEA中选中 右侧 Maven Projects如下双击install: 6、创建子工程: 7、创建springboot子项目 8、注意Group与父工程一致
  • 创建父级项目 new ----- others ------ maven project 创建好后删除,pom.xml以外的文件 ...点击Modules的creat按钮,创建子maven项目 ...填写子maven项目的信息 ...点击finish即可完成子项目的创建 ...
  • Maven 建立父子项目和跨项目调用内容的步骤

    万次阅读 多人点赞 2017-05-14 15:31:03
    新公司使用Maven管理项目,同时我们是做微服务,所以对于微服务项目来说,使用Maven建立起一个父子项目这种关系,很方便管理(只是个人感觉... (2)这样来说,子项目至少有三个,server(服务层子项目)、web(视图层子
  • [Maven] 跨项目调用内容

    千次阅读 2018-08-06 16:25:10
    比如本文中的common子项目为公共项目,其中可以将公用的东西,比如实体类、工具类等存储到该项目,将来,可以在service子项目和web子项目中直接调用即可,如果达到这样的功能,就需要添加依赖标签。以service子项目...
  • maven多模块项目依赖管理与依赖继承

    万次阅读 2019-02-15 15:29:42
    dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承) 父模块的pom &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project ...
  • 本文中创建maven项目,不使用命令,完全用myeclipse实现,个人感觉这样新手更容易接受! 开发环境:myeclipse 8.6+maven(myeclipse自带插件) ...多模块其实就是按照层级的管理构建,项目包含一个pom...
  • 项目是使用maven+springboot实现多模块开发,但是每个子模块是不能独立运行的,...maven打包的时候怎么能把子项目的resouce资源打包进去?父项目依赖子项目,我现在就是要打包的时候,把子项目的resource引入进去.
  • Springboot整合dubbo构建maven多模块项目 简单实例,包括Server和client两个模块

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,160
精华内容 18,064
关键字:

maven包含子项目