Maven 2 Google代码项目的Maven存储库
我正在主持一个关于Google代码的小型开源项目,我被要求将jar提交到一个可公开访问的Maven存储库。我对Maven几乎没有实际知识。最好的方法是什么 是否有我可以提交到的中央存储库,或者我可以托管自己的存储库?当我想要发布jar的新版本时,我需要做什么 我一直在谷歌上搜索并发现,这看起来很好,很简单,但似乎有点。。。与Maven的精神相反,将jar文件提交给SVN:) 还有,有没有一种方法可以像谷歌代码那样,继续跟踪下载数量 编辑 我已经得到了一些答案,其中一些包含了关于如何添加到我的Maven 2 Google代码项目的Maven存储库,maven-2,google-code,Maven 2,Google Code,我正在主持一个关于Google代码的小型开源项目,我被要求将jar提交到一个可公开访问的Maven存储库。我对Maven几乎没有实际知识。最好的方法是什么 是否有我可以提交到的中央存储库,或者我可以托管自己的存储库?当我想要发布jar的新版本时,我需要做什么 我一直在谷歌上搜索并发现,这看起来很好,很简单,但似乎有点。。。与Maven的精神相反,将jar文件提交给SVN:) 还有,有没有一种方法可以像谷歌代码那样,继续跟踪下载数量 编辑 我已经得到了一些答案,其中一些包含了关于如何添加到我的po
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种选择:
选项1 使用Maven构建和部署工件(有关详细信息,请参阅和上面的链接)
选项2 假设您有一个创建jar的构建过程,并且您已经定义了POM,那么您最好将其发布到Sonatype OSS存储库,如上所述 通过Maven deploy插件的部署文件目标,将现有jar部署到标准Maven存储库非常简单:
/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
谢谢!看起来很有趣。不幸的是,我的身材