如何使用Bitbucket作为maven远程存储库?

coo*_*ler 27 git bitbucket maven

我们计划使用bitbucket作为源代码存储库以及基于maven的项目的远程存储库.我在bitbucket上创建了一个存储库,如下所示:

https://bitbucket.org/mycompany/maven-repository

如何使用项目特定的pom.xml将公司特定的项目罐推送到上面的远程存储库?你能帮我一个样本pom.xml吗?我们将把所有公司特定的jar推送到上面的远程存储库,供公司内的其他项目用作maven依赖项.

以下是我到目前为止将一个示例项目推送到远程仓库的尝试:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                  http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>corporate-pom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<distributionManagement>
    <repository>
        <id>MyCompanyRepo</id>
        <url>https://bitbucket.org/mycompany/maven-repository</url>
    </repository>
</distributionManagement>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.7</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)

以上是父pom,它将被公司内的所有其他项目包括在内,我想将其推送到远程仓库以供其他公司特定项目使用.

当我运行mvn deploy命令时,这是我得到的错误:

C:\Cooler\Work\dev\Projects\mycompany\wal-common>mvn deploy
[WARNING]
[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unrecognised tag: 'snapshotPolicy' (position: START_TAG seen ...</layo
ut>\n          <snapshotPolicy>... @203:27)  @ C:\Users\cooler\.m2\settings.xml,
line 203, column 27
[WARNING]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building corporate-pom 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ corporate-pom
---
[INFO] Installing C:\Cooler\Work\dev\Projects\mycompany\wal-common\pom.xml to C:\
Users\cooler\.m2\repository\com\mycompany\corporate-pom\1.0\corporat
e-pom-1.0.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ corporate-pom ---
Uploading: https://bitbucket.org/mycompany/maven-repository/com/mycompany/corporate-   pom/1.0/corporate-pom-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.607s
[INFO] Finished at: Tue Sep 17 14:33:01 MST 2013
[INFO] Final Memory: 7M/122M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:
deploy (default-deploy) on project corporate-pom: Failed to deploy artifacts: Co
uld not transfer artifact com.mycompany:corporate-pom:pom:1.0 from/
to CompanyREPO (https://bitbucket.org/mycompany/maven-repository): Connection to h
ttp://:8080 refused: Connection refused: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
xception 
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

ams*_*ams 14

您可以尝试http://synergian.github.io/wagon-git/index.html它有bitbucket的说明.

使用bitbucket的另一种方法是为公司使用dropbox文件夹. https://code.google.com/p/peter-lavalle/wiki/MavenOnDropBox 包含有关如何执行此操作的非常好的分步指南.

  • +1为协同作用,非常容易设置; 如果您已经使用git,我无法想象设置maven存储库的更快捷方式. (2认同)

del*_*ant 10

在本地maven存储库中安装jar.

制作目录,例如maven-repo/repository

进入maven-repo

执行以下操作(用与jar相关的参数替换参数):

mvn install:install-file -DgroupId=com.rapid_i -DartifactId=rapidminer -Dversion=5.3.006 -Dfile=/path/to/artifact/rapidminer.jar -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repository  -DcreateChecksum=true
Run Code Online (Sandbox Code Playgroud)

将文件夹共享到BitBucket公共存储库.

在你的pom.xml中创建一个指向你bitbucket文件夹的存储库.(你必须在路径https://bitbucket.org/your-user-or-group/your_maven-repo / raw/master /中使用/ raw/master ! !)

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.activeintel</groupId>
<artifactId>rapidminer-proj</artifactId>
<version>0.0.1</version> 

<!-- Dependency to jar on Maven Repository on Git-BitBucket -->
<dependencies>
    <dependency>
        <groupId>com.rapid_i</groupId>
        <artifactId>rapidminer</artifactId>
        <version>5.3.006</version>
    </dependency>
</dependencies>

<!-- Maven Repository on Git-BitBucket -->
<repositories>
<repository>
    <id>neil_rubens-repository</id>
    <url>https://bitbucket.org/your-user-or-group/your_maven-repo/raw/master/repository/</url>
</repository>
</repositories>

</project>
Run Code Online (Sandbox Code Playgroud)

来源:在Git(Bitbucket/Github)上为第三方罐子托管Maven存储库


mou*_*nds 2

如何使用项目特定的 pom.xml 将我公司特定的项目 jar 推送到上述远程存储库?

不能。我认为不应该。

Bitbucket并不是一个Maven 存储库。尝试让 Maven 将工件部署到 BitBucket是错误的 ,可能会违反 Atlassian 的使用条款。另一方面可能还好。

要么需要部署到您自己的本地存储库,要么部署到公共存储库。

  • 我认为这是不正确的。人们显然已经做到了这一点[(就像这个人)](http://blog.chrissom.com/dev/bitbucket-as-a-maven-repository.html),正如 ams 所说,wagon-git 的目标就是做到这一点。 (3认同)
  • 他们似乎意味着该部分没有多媒体文件托管。我知道有关于如何从 Bitbucket 托管静态网站的说明,如果您查看[此缺陷](https://bitbucket.org/site/master/issue/7101/bug-accessing-private-reposotory-with )他们在评论中没有提出异议。 (2认同)