【问题标题】:Add compiled java class to a maven project将已编译的 java 类添加到 maven 项目
【发布时间】:2011-02-07 08:28:07
【问题描述】:

我收到了一些需要添加到项目中的编译类。

我能想到的一个解决方案是使用这些文件创建一个 jar 并手动将其上传到存储库。显然这会起作用。但我想知道是否有更优雅的解决方案。可能我可以以某种方式将它们放在项目结构下吗?因此文件将被签入到源代码管理中,并且更容易维护它们的版本等。

【问题讨论】:

  • 恐怕一开始就分发未打包的编译类并不优雅。
  • 正如 Boris 所暗示的那样,将二进制类文件存储在源代码控制存储库中是一个坏主意。
  • @Sean:我同意,但这是给定的情况,我必须承认对我来说很新,但目前我无能为力。

标签: maven-2


【解决方案1】:

这是我根据鲍里斯回答的 cmets 的方法(在发现自己昨天需要使用相同的方法,但找不到指向我使用的答案的链接之后):

在您的项目目录中,创建一个名为 repo 的文件夹,我们将把它用作基于文件夹的 Maven 存储库。

将以下文件存储库添加到您的项目pom.xml

<repositories>
    <repository>
        <id>file.repo</id>
        <url>file://${project.basedir}/repo</url>
    </repository>
</repositories>

将您的类打包为 jar,并将它们部署到文件存储库,使用以下命令:

mvn deploy:deploy-file
-Durl=file:///absolute/path/to/your-project/repo \
-DrepositoryId=file.repo \
-Dfile=path-to-your.jar \
-DgroupId=some.external.project.group \
-DartifactId=the-artifact-name \
-Dversion=1.0 \
-Dpackaging=jar;

在此之后,您可以使用您在上面传递的 groupId、artifactId 和 version 的值,在您的项目 pom.xml 中添加对 jar 的正常依赖项。然后,您可以将 repo 文件夹添加到 SVN,并将更改提交到您的 pom.xml。任何签出您的项目的开发人员现在都可以毫不费力地使用相同的依赖项。

【讨论】:

    【解决方案2】:

    第一个想法比签入您无法控制的二进制文件要好得多。因此,将二进制文件捆绑在一个 jar 中,对其进行版本化并将其部署到存储库中。

    【讨论】:

    • 如果您正在与未共享存储库的其他人一起工作,因此希望将依赖项添加到您的 SCM:考虑在项目根目录下创建一个文件存储库,将打包的依赖项部署到该存储库,在项目 POM 中引用文件存储库并将该存储库添加到修订控制。
    • @Tim 你的评论应该是一个额外的答案。
    • 好吧,我不能完全同意你的看法。在源代码管理中,我可以更好地控制正在发生的事情。
    • 谢谢两位。如果解决方案足够清晰,我会把它作为评论留下:我也通过 StackOverflow 发现了这个方法,所以你应该可以在 SO 上找到。如果不是,我会在答案中详细说明,因为我现在找不到自己的链接..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多