如何在未指定的情况下将maven部署工件制作到远程服务器上的主目录?

时间:2017-08-23 11:52:52

标签: maven scp

我可以将我的项目部署到我的远程服务器,如下所示:

maven

但是(正如你所看到的)我被迫在我的服务器上指定scp用户的主目录。通常当我使用scp somefile.txt me@myserver.com:时,我只需使用pom.xml,文件就会转移到我服务器上用户的主页目录中。但是如果我在<distributionManagement> <repository> <id>internal</id> <url>scpexe://maven@myserver.com:</url> </repository> </distributionManagement> 中尝试类似的东西:

Execution default-deploy of goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy failed: For input string: "" -> [Help 1]

我收到此错误消息:

<distributionManagement>
    <repository>
        <id>internal</id>
        <url>scpexe://maven@myserver.com</url>
    </repository>
</distributionManagement>

如果我试试这个:

Error executing command for transfer: Exit code 1 - mkdir: cannot create directory ‘//com’: Permission denied -> [Help 1]

然后Maven尝试创建repo结构并将工件直接部署到服务器根目录。所以我收到此错误消息:

function myFunction() {
  document.getElementById("myP").title = "Title Top the input field";
  //document.getElementById("myP").title.position=  'top'; //Wrong
}

有没有办法将maven存储库指定为驻留在用户主目录中,而无需手动指定主目录的位置?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用$HOME环境变量,如此

<distributionManagement>
    <repository>
        <id>internal</id>
        <url>scpexe://maven@myserver.com:$HOME</url>
    </repository>
</distributionManagement>

或者,如果这不起作用,也许这可能?

<distributionManagement>
    <repository>
        <id>internal</id>
        <url>scpexe://maven@myserver.com:~</url>
    </repository>
</distributionManagement>

当然这是假设你也在运行Linux。

答案 1 :(得分:0)

您必须在 $HOME 之前添加端口号

<url>scpexe://maven@myserver.com:22/$HOME</url>