Java 多模块maven项目-从属排除
我希望我的ModuleTypeA war将ModuleBase作为一个依赖项包含在“src/main/java/typeA”包之外,类似地,ModuleTypeB war将ModuleBase作为一个依赖项包含在“src/main/java/typeB”包之外 以下是我的项目结构: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/
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
实际上是一场战争,您希望在其他战争中重用它的内容,那么您可以更仔细地查看它