3

例如,我已将 junit-addons 包含在我的依赖项中:junit-addons。但是在 Maven 存储库中没有任何源代码。而且我知道它存在(我已经下载了它)。如何修改依赖项以使用本地项目中的库而不是 maven 存储库中的库(我会从存储库中省略 junit-addons 并改用本地 JAR 及其源代码)。

注意:我使用 m2eclipse。

4

5 回答 5

4

我以非常直接的方式解决了这个问题:

${user.home}/.m2/repository/{group-name}/{artifactId}/{version}/我已按照 MAVEN 标准将源文件复制到文件夹中:{artifactId}-{version}-sources.jar它就像一个魅力!Eclipse 检查本地存储库并找到源。

不过,我不知道这是否是 MAVEN 方式。

于 2010-02-18T15:57:41.907 回答
2

如何修改依赖项以使用本地项目中的库而不是 maven 存储库中的库

你不能。如果源 JAR 在中央存储库中不可用,只需将源放在文件系统的某个文件夹、JAR 或 zip 中(您可以install:install-file按照 Maven 的约定在本地存储库中归档源)并设置 Eclipse 以使用它们(右键单击Package Explorer中 Maven Dependencies 下的 JAR ,选择Java Source Attachment并设置Location path)。

于 2010-02-17T16:39:16.827 回答
2

我使用免费版本的 Artifactory 存储库。我创建了一个 jar 文件 {artifactId}-{version}-sources.jar 并上传到存储库到与二进制 jar 文件相同的 group-id 中。然后在我的pom中我添加了依赖:

<dependency>
            <groupId>mygroupid</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0</version>
            <classifier>source</classifier>
        </dependency>

在 Maven 构建阶段,源 jar 被下载到我的本地存储库。我使用 netbeans 7.0,它会自动为我管理一切。例如,右键单击方法并正确选择 go toSource 会将我带到 jar 中的源代码。

于 2011-09-02T15:59:24.687 回答
1

您可以使用安装文件 mojo将工件本地安装到本地 maven 存储库中。如果您想与其他人(例如您的团队或其他工作站)共享此工件,您可以使用自己的存储库管理器(例如Nexus)并将其配置为任何存储库的镜像,例如中央存储库。Nexus 将从中央获取(和缓存)工件。此外,您可以将几乎任何工件(如 junit-addons 源)上传到您的 nexus 安装。

为了配置镜像,您必须编辑${user.home}/.m2/settings.xml

<settings>
  <!-- SNIP -->
  <mirrors>
    <mirror>
      <id>nexus-releases</id>
      <mirrorOf>*</mirrorOf>
      <!-- replace nexus.example.com with the location of your nexus installation -->
      <url>http://nexus.example.com/releases</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
      </repositories>
      <id>nexus</id>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
    </profile>
  </profiles>
</settings>
于 2010-02-17T17:03:42.040 回答
0

将其下载到本地存储库后,您可以对其进行复制。给它一个新的 artifactId(例如 libraryName-myVersion)并在 pom.xml 中添加依赖项。确保在 pom.xml 中更改文件夹名称、jar 名称、pom 名称和 artifactId 本身。将所有内容存储在本地存储库中。现在您可以使用您的依赖项的黑客版本。

但老实说,我不认为这是一个好主意。但在您的情况下,它可能会有所帮助/无法避免。

于 2010-02-17T16:43:40.217 回答