【问题标题】:Setting up Maven for a team为团队设置 Maven
【发布时间】:2011-02-25 09:29:56
【问题描述】:

我已经在我的个人项目中广泛使用 Maven,但现在我必须为一个由 5-7 名开发人员组成的小团队设置它。

我的主要问题是,管理 Maven 存储库中不可用的商业库的依赖项的推荐方法是什么?如何管理这些商业库对它们使用的开源库的依赖关系,并且这些库在 Maven 存储库中可用?

此外,我是否应该了解或实施任何其他建议和建议,以使设置尽可能高效、有效和顺利?

提前致谢。

【问题讨论】:

标签: java maven-2 maven


【解决方案1】:

您可能希望首先使用 Nexus 或 Artifactory 设置您自己的内部 Maven 存储库。将其配置为您自己的工件的存储库,并作为 Central 和您需要从中获取内容的任何其他外部存储库的缓存代理。

然后为每个商业库创建仅二进制 POM 文件,包括对它们所依赖的已发布库的依赖项。以所需的结构将 POM 文件和相应的 JAR 文件上传到您的内部存储库。只需确保这些 POM 和 JAR 在您的组/组织之外不可见......取决于相应商业产品的许可证允许/要求什么。

当然,这意味着您将无法通过 Maven 公开您的应用程序(依赖于这些库)。但您可能已经在计划中考虑到了这一点。

【讨论】:

  • 可以公开您的应用,但您的消费者需要像您一样将私有 POM+JAR 添加到他们自己的存储库(或代理)中。
  • @Chris - 同意,但这是 LOT 要求您的软件的消费者!
  • 谢谢。还有其他意见和建议吗?
  • @Stephen_C 是的。但愿不是这样。 :-(
  • 使用 Maven 存储库浏览器 (mvnbrowser.com/index.html) 为您的依赖项查找公共存储库。
【解决方案2】:

我强烈建议使用带有一些常见设置的超级 parent pom,例如

                <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <source>1.6</source><!-- java version -->
                    <target>1.6</target>
                    <encoding>UTF-8</encoding><!-- your source encodings -->
                    <debug>true</debug><!-- false for production -->
                    <optimize>false</optimize><!-- true for production -->
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>

实际上有很多“通用”设置(报告插件),父 pom 保证所有人都使用相同的并且更改到达所有人

还有什么 - 除了自己的 maven repo(尝试 nexus) - ?

  • 检查使用过的 IDE,Eclipse、Netbeans 和 IntelliJ 具有不同级别的 maven 支持和可悲但真实的不同行为,如果可以的话,让您的团队使用 一个 IDE
  • 考虑像hudson 这样的构建服务器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2019-10-10
    • 2015-09-12
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多