代码之家  ›  专栏  ›  技术社区  ›  jqno

Google代码项目的Maven存储库

  •  22
  • jqno  · 技术社区  · 16 年前

    我正在主持一个关于Google代码的小型开源项目,我被要求将jar提交到一个可公开访问的Maven存储库。我对Maven几乎没有实际知识。最好的方法是什么?

    是否有我可以提交到的中央存储库,或者我可以托管自己的存储库?当我想要发布jar的新版本时,我需要做什么?

    this ,看起来很简单,但似乎有点。。。与Maven的精神相反,将jar文件提交给SVN:)。

    编辑

    我已经得到了一些答案,其中一些包含了一些关于如何添加到我的 pom.xml . 谢谢大家!但显然我忘了提到一件重要的事情:我的构建脚本是用ANT编写的,坦率地说,我打算保持这种方式:)。我只是想让Maven用户更容易在他们的项目中包含我的jar。


    我最终采用的解决方案

    referenced 之前,我只是向SVN提交了一份Maven回购协议。我让ANT脚本调用Maven来设置本地repo,然后调用SVN将其提交给Google代码。对于那些感兴趣的人:看看我的构建脚本 here ,在 publish-maven 目标。

    4 回复  |  直到 15 年前
        1
  •  24
  •   Rich Seller    16 年前

    有一个 guide to the central repository

    Sonatype还可以托管OSS存储库,请参阅 their guide

    基本上,您有4种选择:

    1. 针对Maven存储库执行标准Maven构建(已排除)
    2. 设置Maven存储库,使用Ant进行构建,并使用Maven部署jar和POM。
    3. 设置Maven存储库,使用Ant HTTP任务发布工件
    4. 使用Subversion“存储库”,并使用SvnAnt任务发布工件

    使用Maven构建和部署工件(参见 Maven book


    选择2

    假设您有一个创建jar的构建过程,并且您已经定义了POM,那么您最好将其发布到Sonatype OSS存储库,如上所述。

    通过Maven deploy插件的部署文件目标,将现有jar部署到标准Maven存储库非常简单:

    1. 设置您的存储库(例如,在Sonatype服务器上通过引发 Jira request
    2. 用Ant构建你的罐子。
    3. 如果您已经定义了POM,请将其放在与jar相同的目录中。
    4. mvn部署:部署文件-Durl= http://path/to/your/repository \ -DrepositoryId=some.id\ -Dfile=工件jar的路径\

    例如,对于groupId=com.foo.bar,artifactId=my project version=1.0.0,文件的路径为:

    /com/foo/bar/my-project/my-project-1.0.0.jar
    /com/foo/bar/my-project/my-project-1.0.0.pom
    

    选择3

    Ant HTTP library (请注意,我自己还没有试过)。您将组合两个HTTP put任务,一个用于jar,另一个用于POM。

    <httpput url="http://path/to/your/repository" putFile="/path/to/yourproject.pom">
      <userCredentials username="user" password="password"/>
    </httpput>
    <httpput url="http://path/to/your/repository" putFile="/path/to/yourproject.jar">
      <userCredentials username="user" password="password"/>
    </httpput>
    

    选择4

    如果您想完全避免Maven,并使用Ant部署到SVN支持的存储库,可以使用 SvnAnt Subversion library Svn import 将工件添加到远程Subversion存储库的任务。

    <import path ="/dir/containing/the/jar/and/pom" 
        url="svn://your/svn/repository"
        message="release"/>
    
        2
  •  7
  •   Wilfred Springer    16 年前

    检查货车svn。它将允许您“部署”到Subversion存储库。这有点复杂,但总比没有好。我知道有几个项目在java.net上使用它,我在code.google.com上也遇到过一些使用它的项目。

    如果要使用它,则首先需要加载Vang svn作为扩展:

      <build>
        ...
        <extensions>
          <extension>
            <groupId>org.jvnet.wagon-svn</groupId>
            <artifactId>wagon-svn</artifactId>
            <version>...</version>
          </extension>
        </extensions>
    

    接下来,需要使用svn:protocol标识符设置部署目标。这是我从互联网上复制的一个例子。

    <distributionManagement>
        <repository>
            <id>maven-config-processor-plugin-repo-releases</id>
            <name>Maven Repository for Config Processor Plugin (releases)</name>
            <url>svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/releases</url>
            <uniqueVersion>false</uniqueVersion>
        </repository>
        <snapshotRepository>
            <id>maven-config-processor-plugin-repo-releases</id>
            <name>Maven Repository for Config Processor Plugin (snapshots)</name>
            <url>svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/snapshots</url>
            <uniqueVersion>false</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>
    
        3
  •  1
  •   ZZ Coder    16 年前

    检查Maven存储库是否支持 maven deploy plugin . 这将是最简单的方法。

    this

    安装完成后,您只需执行以下操作:

      mvn deploy:deploy
    
        4
  •  0
  •   minghan    13 年前

    您可以将您的jar提交给 https://clojars.org/

    pom.xml

    <repositories>
      <repository>
        <id>clojars.org</id>
        <url>http://clojars.org/repo</url>
      </repository>
    </repositories>
    
    推荐文章