Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多模块maven项目-从属排除_Java_Maven - Fatal编程技术网

Java 多模块maven项目-从属排除

Java 多模块maven项目-从属排除,java,maven,Java,Maven,我希望我的ModuleTypeA war将ModuleBase作为一个依赖项包含在“src/main/java/typeA”包之外,类似地,ModuleTypeB war将ModuleBase作为一个依赖项包含在“src/main/java/typeB”包之外 以下是我的项目结构: ModuleBase | |----> src/main/java/base |----> src/main/java/typeA |----> src/main/java/

我希望我的ModuleTypeA war将ModuleBase作为一个依赖项包含在“src/main/java/typeA”包之外,类似地,ModuleTypeB war将ModuleBase作为一个依赖项包含在“src/main/java/typeB”包之外

以下是我的项目结构:

ModuleBase
   |
   |----> src/main/java/base
   |----> src/main/java/typeA
   |----> src/main/java/typeB
   |----> pom.xml

ModuleTypeA
   |
   |----> src/main/java/..
   |----> pom.xml

ModuleTypeB
   |
   |----> src/main/java/..
   |----> pom.xml
我是马文的新手,不知道如何做到这一点。ModuleBase不能是父项目,因为我需要为它构建一个jar(不能有打包类型pom),这样我就可以创建一个顶级父项目

欢迎提出任何建议


谢谢

首先,阅读这篇关于依赖项排除的文章:

如果要从ModuleBase构建.war文件,则可以从ModuleBase为ModuleTypeA创建一个覆盖,而不是依赖项,类似地,也可以将ModuleTypeB war创建为ModuleBase的覆盖。为此,您可以使用Maven War插件:

这样,要排除包,请在pom.xml中使用以下内容:

<excludes>
   <exclude>src/main/java/typeA</exclude>
</excludes>

src/main/java/typeA
更新:

我还没有尝试过,但是有两种方法可以从.jar中排除包

1) 使用。以下是您可以参考的示例:

2) 使用,检查此答案作为示例:


首先,阅读这篇关于依赖项排除的文章:

如果要从ModuleBase构建.war文件,则可以从ModuleBase为ModuleTypeA创建一个覆盖,而不是依赖项,类似地,也可以将ModuleTypeB war创建为ModuleBase的覆盖。为此,您可以使用Maven War插件:

这样,要排除包,请在pom.xml中使用以下内容:

<excludes>
   <exclude>src/main/java/typeA</exclude>
</excludes>

src/main/java/typeA
更新:

我还没有尝试过,但是有两种方法可以从.jar中排除包

1) 使用。以下是您可以参考的示例:

2) 使用,检查此答案作为示例:


首先,阅读这篇关于依赖项排除的文章:

如果要从ModuleBase构建.war文件,则可以从ModuleBase为ModuleTypeA创建一个覆盖,而不是依赖项,类似地,也可以将ModuleTypeB war创建为ModuleBase的覆盖。为此,您可以使用Maven War插件:

这样,要排除包,请在pom.xml中使用以下内容:

<excludes>
   <exclude>src/main/java/typeA</exclude>
</excludes>

src/main/java/typeA
更新:

我还没有尝试过,但是有两种方法可以从.jar中排除包

1) 使用。以下是您可以参考的示例:

2) 使用,检查此答案作为示例:


首先,阅读这篇关于依赖项排除的文章:

如果要从ModuleBase构建.war文件,则可以从ModuleBase为ModuleTypeA创建一个覆盖,而不是依赖项,类似地,也可以将ModuleTypeB war创建为ModuleBase的覆盖。为此,您可以使用Maven War插件:

这样,要排除包,请在pom.xml中使用以下内容:

<excludes>
   <exclude>src/main/java/typeA</exclude>
</excludes>

src/main/java/typeA
更新:

我还没有尝试过,但是有两种方法可以从.jar中排除包

1) 使用。以下是您可以参考的示例:

2) 使用,检查此答案作为示例:


您可以在ModuleBase中创建不同的程序集,并在ModuleTypeA/B中将这些程序集称为系统依赖项

您可以使用
。/module base/target/rt.jar


可能会帮助您了解程序集主题。

您可以在ModuleBase中创建不同的程序集,并在ModuleTypeA/B中将这些程序集称为系统依赖项

您可以使用
。/module base/target/rt.jar


可能会帮助您了解程序集主题。

您可以在ModuleBase中创建不同的程序集,并在ModuleTypeA/B中将这些程序集称为系统依赖项

您可以使用
。/module base/target/rt.jar


可能会帮助您了解程序集主题。

您可以在ModuleBase中创建不同的程序集,并在ModuleTypeA/B中将这些程序集称为系统依赖项

您可以使用
。/module base/target/rt.jar


可能会帮助您了解组装主题。

通常它应该是这样的:

proj
  + proj-base
    + src/main/java/   // containing base code
    + pom.xml
  + proj-mod-type-a
    + src/main/java/   // containing module a code
    + pom.xml          // dependency to proj-base
  + proj-mod-type-b
    + src/main/java/   // containing module b code
    + pom.xml          // dependency to proj-base
  + proj-a-web
    + src/main/java    // war A source
    + pom.xml          // dependency to proj-base and proj-mod-type-b
  + proj-b-web
    + src/main/java    // war B source
    + pom.xml          // dependency to proj-base and proj-mod-type-a
简而言之,将您的项目拆分为有意义的模块,每个模块都是一个依赖单元。根据您需要的依赖关系构建您的WAR基础


如果
proj base
实际上是一个WAR,您希望在其他WAR中重用它的内容,那么您可以更仔细地研究Maven中WAR覆盖的行为。但是,我相信基本思想仍然是一样的:在构建WAR/EAR时,最好将项目模块化,并具有适当的依赖关系。通常情况下,它应该如下所示:

proj
  + proj-base
    + src/main/java/   // containing base code
    + pom.xml
  + proj-mod-type-a
    + src/main/java/   // containing module a code
    + pom.xml          // dependency to proj-base
  + proj-mod-type-b
    + src/main/java/   // containing module b code
    + pom.xml          // dependency to proj-base
  + proj-a-web
    + src/main/java    // war A source
    + pom.xml          // dependency to proj-base and proj-mod-type-b
  + proj-b-web
    + src/main/java    // war B source
    + pom.xml          // dependency to proj-base and proj-mod-type-a
简而言之,将您的项目拆分为有意义的模块,每个模块都是一个依赖单元。根据您需要的依赖关系构建您的WAR基础


如果
proj base
实际上是一个WAR,您希望在其他WAR中重用它的内容,那么您可以更仔细地研究Maven中WAR覆盖的行为。但是,我相信基本思想仍然是一样的:在构建WAR/EAR时,最好将项目模块化,并具有适当的依赖关系。通常情况下,它应该如下所示:

proj
  + proj-base
    + src/main/java/   // containing base code
    + pom.xml
  + proj-mod-type-a
    + src/main/java/   // containing module a code
    + pom.xml          // dependency to proj-base
  + proj-mod-type-b
    + src/main/java/   // containing module b code
    + pom.xml          // dependency to proj-base
  + proj-a-web
    + src/main/java    // war A source
    + pom.xml          // dependency to proj-base and proj-mod-type-b
  + proj-b-web
    + src/main/java    // war B source
    + pom.xml          // dependency to proj-base and proj-mod-type-a
简而言之,将您的项目拆分为有意义的模块,每个模块都是一个依赖单元。根据您需要的依赖关系构建您的WAR基础


如果
proj base
实际上是一个WAR,您希望在其他WAR中重用它的内容,那么您可以更仔细地研究Maven中WAR覆盖的行为。但是,我相信基本思想仍然是一样的:在构建WAR/EAR时,最好将项目模块化,并具有适当的依赖关系。通常情况下,它应该如下所示:

proj
  + proj-base
    + src/main/java/   // containing base code
    + pom.xml
  + proj-mod-type-a
    + src/main/java/   // containing module a code
    + pom.xml          // dependency to proj-base
  + proj-mod-type-b
    + src/main/java/   // containing module b code
    + pom.xml          // dependency to proj-base
  + proj-a-web
    + src/main/java    // war A source
    + pom.xml          // dependency to proj-base and proj-mod-type-b
  + proj-b-web
    + src/main/java    // war B source
    + pom.xml          // dependency to proj-base and proj-mod-type-a
简而言之,将您的项目拆分为有意义的模块,每个模块都是一个依赖单元。根据您需要的依赖关系构建您的WAR基础

如果
proj base
实际上是一场战争,您希望在其他战争中重用它的内容,那么您可以更仔细地查看它