簡體   English   中英

pom.xml中的Maven部署參數

[英]Maven Deployment Parameters in pom.xml

我有一個Maven項目,應該將他們編譯的文件部署在另一個文件夾中。 目前,我通過指定參數altDeploymentRepository來做到這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存儲庫,或者為了使這個過程更加直接,我全都耳朵!

只是為了確保你真正理解Maven中“部署”的含義,因為你正在做的事情“部署到其他文件夾”是很奇怪的。

Maven Deploy意味着將工件部署到遠程存儲庫。 遠程存儲庫是Maven搜索工件並下載到本地存儲庫的地方。 它很少是“另一個文件夾”。 我們通常使用<distributionManagement>來配置要部署的遠程存儲庫。 通常我們使用altDeploymentRepository作為配置部署到不同的遠程回購distrubutionManagement

如果您只是想將構建的工件放到一個單獨的文件夾中,而不是針對“遠程存儲庫”,我相信匯編(或類似的插件)就是您所需要的。

與上面的答案類似,可以通過最初部署到目標文件夾下的文件系統倉庫作為構建的一部分來隔離部署中的構建,然后使用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 

好的,這比預期的要容易。 我需要在我的插件中添加一個配置塊:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM