【问题标题】:How to upload sources to local Maven repository如何将源上传到本地 Maven 存储库
【发布时间】:2011-05-01 05:25:42
【问题描述】:

假设我的本地机器上有一个 Maven 2 Java 项目。我使用mvn install 构建项目.jar 文件并将其推送到我的本地Maven 存储库。

问题:

如何强制 Maven 也将项目源 jar 推送到本地仓库?

如果我在开发新项目时将上述项目用作依赖项,这将很有用,并且可以使用mvn eclipse:eclipse -DdownloadSources 功能。

【问题讨论】:

    标签: java maven-2 maven


    【解决方案1】:

    这个 sn-p 自动安装/部署来自任何安装/部署的源 jar:

    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>[whatever version is current]</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      ...
    </project>
    

    使用此链接检查current version of the maven-source-plugin

    或者从命令行:

    mvn clean source:jar install
    

    【讨论】:

    • 哇,太简单了!在 maven 网站上很难找到这个,谢谢!
    • 有没有办法从命令行做到这一点,而无需编辑 pom?
    • @hertzsprung 确定:mvn clean source:jar install
    • 别忘了使用最新的插件版本。当前最新版本是 3.2.1
    • 最有趣的部分是命令行中插件的顺序问题(“source:jar install”有效,但“install source:jar”对我不起作用,maven3.5.2/java8)跨度>
    【解决方案2】:

    对上述答案的补充:

    它对我来说仍然无法正常工作。 sources.jar 已生成并在目标文件夹中可用,但在本地存储库中不可用。原因是我指定了不同的阶段:&lt;phase&gt;install&lt;/phase&gt; 在这种情况下,首先执行 maven 安装插件并将 jar 文件复制到本地 repo。之后会生成 source.jar(因此不会被复制)。

    [INFO] --- maven-install-plugin:2.4:install (default-install) @ foo ---
    [INFO] Installing foo.jar into local repo
    [INFO] Installing pom.xml into local repo
    [INFO] Installing javadoc.jar into local repo
    [INFO]
    [INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ foo ---
    [INFO] Building jar: foo-sources.jar
    

    因此,指定比安装更早的阶段很重要(就像在接受的答案中正确提到的那样)。

    【讨论】:

      【解决方案3】:

      我找到了更好的答案,只需将其添加到您的 pom.xml 中

       <build>
            <plugins>
              <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-source-plugin</artifactId>
              <executions>
                  <execution>
                      <id>attach-sources</id>
                      <goals>
                          <goal>jar</goal>
                      </goals>
                  </execution>
              </executions>
             </plugin>
           </plugins>
        </build>
      

      并从命令行运行:

      mvn install
      

      现在 maven 安装在您的本地存储库 jar 和源上

      解决方案位于:https://www.mkyong.com/maven/generate-source-code-jar-for-maven-based-project/(我不以任何方式加入)

      【讨论】:

        猜你喜欢
        • 2018-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2013-05-10
        • 2015-01-01
        相关资源
        最近更新 更多