首页 文章

pom.xml中的Maven部署参数

提问于
浏览
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文件夹中 . 之后我只需要添加,提交并推送更改 .

如果有任何方法可以将目标文件直接推送到 maven deploy 所需的Github仓库,或者为了使这个程序更直接,我全都耳朵!

3 回答

  • 2

    只是为了确保你真正理解Maven中“部署”的含义,因为你正在做的事情“部署到其他文件夹”是很奇怪的 .

    Maven Deploy意味着将工件部署到远程存储库 . 远程存储库是Maven搜索工件并下载到本地存储库的地方 . 它很少"another folder" . 我们通常使用 <distributionManagement> 来配置要部署的远程存储库 . 通常我们使用 altDeploymentRepository 来部署到 distrubutionManagement 中配置的不同远程仓库 .

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

  • 0

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

    预告道,这是基于* 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>
        ...
    

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

    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
    
  • 1

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

    <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>
    

相关问题