1

我有一个 Maven 项目,应该将它们的编译文件部署在另一个文件夹中。目前,我通过指定参数来做到这一点altDeploymentRepository

mvn -DaltDeploymentRepository=snapshot-repo::default::file:/home/user/some/folder/mvn-repo/snapshots deploy

我的问题:是否可以做一个简单的mvn deploy代替并将参数声明移动到 pom.xml 中?如果是,如何?

更新

有人问我为什么要这样做。我已将我的项目与源代码和 Maven 存储库分离为 Maven 项目。两者都是不同的 Github 项目,因此位于不同的文件夹中。我配置了 Maven,以便将目标文件部署在 repo 文件夹中。之后,我只需要 git add、commit 和 push 更改。

如果有任何方法可以将目标文件直接推送到所需的 Github 存储库,maven deploy或者让这个过程更简单,我全都在听!

4

3 回答 3

2

只是为了确保您真正理解 Maven 中“部署”的含义,因为像您正在做的那样“部署到其他文件夹”是很奇怪的。

Maven Deploy 意味着将工件部署到远程存储库。远程存储库是 Maven 搜索工件并下载到本地存储库的地方。它很少是“另一个文件夹”。我们通常使用<distributionManagement>配置远程存储库进行部署。通常,我们曾经altDeploymentRepository部署到不同的远程仓库,如distrubutionManagement.

如果您只是想将构建的工件放到一个单独的文件夹中,而不是针对“远程存储库”,我相信程序集(或类似的插件)是您需要的。

于 2013-03-21T03:57:46.353 回答
1

与上面的答案类似,可以通过最初部署到目标文件夹下的文件系统存储库作为构建的一部分,然后使用 wagon 插件将本地(和私有)暂存存储库同步到一个更公共的存储库。

预先道歉,这是基于 *nix 的(请参阅pwd

mvn -DaltDeploymentRepository=local-staged-repo::default::file://`pwd`/target/staged-repo \
    clean \
    deploy

或者,它可以像这样在你的 pom.xml 中编码:

<pluginManagement>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
      <altDeploymentRepository>
        staged-repo::default::file:${project.basedir}/target/staged-repo
      </altDeploymentRepository>
    </configuration>
  </plugin>
</pluginManagement>
    ...

然后在稍后阶段,从项目的根文件夹运行。您可以使用以下插件将根 pom.xml 的目标文件夹中的暂存存储库合并到更永久的存储库:

mvn org.codehaus.mojo:wagon-maven-plugin:1.0-beta-5:merge-maven-repos \
  -Dwagon.source=file://`pwd`/target/staged-repo \ 
  -Dwagon.target=http://<some-repo>/release \
  -Djava.io.tmpdir=/tmp 
于 2014-05-14T14:52:59.070 回答
0

好的,这比预期的要容易。我需要在我的插件中添加一个配置块:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <altDeploymentRepository>
                  snapshot-repo::default::file:/home/user/some/folder/mvn-repo/snapshots
                </altDeploymentRepository>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.google.code.maven-svn-wagon</groupId>
                    <artifactId>maven-svn-wagon</artifactId>
                    <version>1.4</version>
                </dependency>
            </dependencies>
        </plugin>
于 2013-03-21T00:16:00.210 回答