【问题标题】:how to create jar for specific packages maven如何为特定包创建jar maven
【发布时间】:2013-07-15 08:59:19
【问题描述】:

我正在做一个 Maven 项目。我想为特定的包创建 jar 这是项目结构,我想创建只包含 dcacommon 的 jar,我该如何实现。

myproject
|
--src
   |
   --main
        |
        --java
           |
           --common
           --dca
           --model
       --resources
   --test
--pom.xml

我可以使用 ma​​ven-jar-plugin

来实现吗

【问题讨论】:

  • 为什么会有这个要求?您似乎正在尝试解决另一个地方的问题。

标签: java maven jar


【解决方案1】:

maven-jar-plugin 可以自定义包含/排除特定文件。您可以通过在 pom.xml 中进行配置来实现这一点,如下所示。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
.
.
<configuration>
    <excludes>
        <exclude>**/model/*</exclude>
    </excludes>
</configuration> 
.
.
</plugin>

【讨论】:

    【解决方案2】:

    您可以将项目分成子模块,其中有两个子模块:

    • 常见
    • dca

    这些子模块将是单独的 Maven 工件,位于您当前拥有的 groupId 中。任何包含子模块的模块都必须打包为pom,因此不能包含源代码本身。

    依赖于任一包的代码(例如,某种用户界面或 Web 组件)将驻留在另一个子模块中,例如 webgui,并且该子模块将具有对 @987654325 的 Maven 依赖项@或dca神器。

    总结一下,你的结构应该是这样的:

    • root --> 打包pom
      • web --> 包装war
      • gui --> 包装jar
      • 其他 --> 包装pom
        • dca --> 包装jar
        • 普通 --> 包装jar

    【讨论】:

    • 可能还有其他方法可以实现,这就是我要解决的方法。我认为这将是实现预期结果的最佳方式(假设需求正如您所描述的那样)。
    • 这个 mYproject 已经是一个子模块..我可以创建另一个子模块吗?
    • 是的,模块可以有子模块,子模块也可以有自己的子模块。据我所知,唯一的限制是 Windows 不支持超过 255 个字符的文件路径。
    • 我的项目有一个包装jar。所以当我创建一个子模块时它给出错误父项目必须有一个POM的包装类型,
    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 2011-09-11
    • 2017-03-24
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2012-04-19
    • 2019-12-04
    相关资源
    最近更新 更多