Maven 2 Google代码项目的Maven存储库

Maven 2 Google代码项目的Maven存储库,maven-2,google-code,Maven 2,Google Code,我正在主持一个关于Google代码的小型开源项目,我被要求将jar提交到一个可公开访问的Maven存储库。我对Maven几乎没有实际知识。最好的方法是什么 是否有我可以提交到的中央存储库,或者我可以托管自己的存储库?当我想要发布jar的新版本时,我需要做什么 我一直在谷歌上搜索并发现,这看起来很好,很简单,但似乎有点。。。与Maven的精神相反,将jar文件提交给SVN:) 还有,有没有一种方法可以像谷歌代码那样,继续跟踪下载数量 编辑 我已经得到了一些答案,其中一些包含了关于如何添加到我的po

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

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

我一直在谷歌上搜索并发现,这看起来很好,很简单,但似乎有点。。。与Maven的精神相反,将jar文件提交给SVN:)

还有,有没有一种方法可以像谷歌代码那样,继续跟踪下载数量

编辑

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


我最终采用的解决方案


最后,我确实使用了我以前使用过的解决方案,在那里我只需向SVN提交一个Maven回购协议。我让ANT脚本调用Maven来设置本地repo,然后调用SVN将其提交给Google代码。对于那些感兴趣的人:查看我的构建脚本,在发布maven目标中。

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

大多数存储库使用ssh作为传输。有关详细信息,请参阅

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

  mvn deploy:deploy
有一个网站有一个关于上传项目的部分,这可能会有所帮助。如果没有其他内容,您可以根据项目检查命名约定和最低信息要求

Sonatype还可以托管OSS存储库,有关详细信息,请参阅

更新:我不是说你应该改变你的构建过程——如果Ant适合你,就坚持它。无论构建方法如何,在POM中遵循Maven约定都是值得的。由于将jar放入Maven存储库的目的是让Maven用户可以访问它,因此需要为发布的工件定义POM。遵循命名约定将有助于您的用户,因此您不妨这样做。例如,将SCM详细信息添加到pom将允许用户使用Maven的IDE集成将项目导入他们的工作区

基本上,您有4种选择:

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

  • 选项1

    使用Maven构建和部署工件(有关详细信息,请参阅和上面的链接)


    选项2

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

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

  • 设置您的存储库(例如,在Sonatype服务器上通过引发
  • 用Ant构建你的罐子
  • 如果您已经定义了POM,请将其放在与jar相同的目录中
  • 运行部署文件目标:

    mvn部署:部署文件-Durl=\ -DrepositoryId=some.id\ -Dfile=工件jar的路径\ -DpomFile=path-to-your-pom.xml

  • 请注意,Maven部署目标将自动将pom.xml转换为[project name]-[version].pom。如果您正在执行其他两个备选方案中的任何一个,则需要确保使用最终名称提交POM,即[project name]-[version].POM。您还需要确保按照Maven约定为工件组合相对路径

    例如,对于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部署到Maven存储库,可以使用(注意,我自己没有尝试过)。您将组合两个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支持的存储库,那么可以使用。您只需配置任务,将工件添加到远程Subversion存储库

    <import path ="/dir/containing/the/jar/and/pom" 
        url="svn://your/svn/repository"
        message="release"/>
    

    检查货车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>
    
    
    ...
    org.jvnet.carg-svn
    货车
    ...
    
    接下来,需要使用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>
    
    
    maven配置处理器插件repo发布
    配置处理器插件的Maven存储库(发布版)
    svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/releases
    假的
    maven配置处理器插件repo发布
    配置处理器插件的Maven存储库(快照)
    svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/snapshots
    假的
    
    您可以将jar提交给

    在您的
    pom.xml
    中:

    <repositories>
      <repository>
        <id>clojars.org</id>
        <url>http://clojars.org/repo</url>
      </repository>
    </repositories>
    
    
    clojars.org
    http://clojars.org/repo
    
    谢谢!看起来很有趣。不幸的是,我的身材