gpt4 book ai didi

maven - 在 Maven 中,如何使用 wagon 插件复制文件?

转载 作者:行者123 更新时间:2023-12-04 23:08:08 27 4
gpt4 key购买 nike

摘要:如何使用 Maven 将一些生成的文件复制到网络服务器(例如 IIS 或 Apache)目录中?

细节:
我有一个在 Maven 中构建的工作应用程序。我已经设法使用 webstart-maven-plugin 构建它它在一个目录 target/jnlp 中生成所有需要的文件(.jar 和 .jnlp) .它还会在 target/foo-1.0.zip 处创建一个包含所有内容的 zip 文件。 .

目前 webstart 插件没有 deploy目标 - 对它的请求以 FAQ (question 3) 结束。 . future 可能会实现,但暂时建议使用wagon-maven-plugin .

我从来没有用过Wagon。首先,我只想将文件复制到网络服务器提供的本地目录中。稍后我想远程复制它们,可能使用 ftp。有人可以举例说明我需要添加到 pom.xml 中的内容吗?让本地副本工作(希望也是一个 ftp 示例?)。我在文档中找不到它。从阅读中我想我可能还需要 Wagon Maven File Provider但由于这似乎几乎没有文档,我不确定。

最佳答案

Wagon 提供商只提供额外的网络协议(protocol)支持(例如 FTP)。

如果要将文件复制到网络服务器(本地或远程),可以使用 Maven 上传插件:

...
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-upload-plugin</artifactId>
</plugin>
...

在父 pom 中:
            <plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-upload-plugin</artifactId>
<version>1.1</version>
<configuration>
<resourceSrc>
${project.build.directory}/${project.build.finalName}.${project.packaging}
</resourceSrc>
<resourceDest>${jboss.deployDir}</resourceDest>
<serverId>${jboss.host}</serverId>
<url>${jboss.deployUrl}</url>
</configuration>
</plugin>

为了以智能方式配置参数,我使用 maven 配置文件(在父 pom 中):
<profiles>
<!-- local deployment -->
<profile>
<id>developpement</id>
<properties>
<jboss.host>localhost</jboss.host>
<jboss.deployDir>appli/jboss-4.0.4.GA/server/default/deploy/</jboss.deployDir>
<jboss.deployUrl>file://C:/</jboss.deployUrl>
</properties>
</profile>
<!-- distant deployment -->
<profile>
<id>validation</id>
<properties>
<jboss.host>ENV_val</jboss.host>
<jboss.deployDir>/home/envval/jboss/server/default/deploy/</jboss.deployDir>
<jboss.deployUrl>scp://PROJECT_LAN_HOST</jboss.deployUrl>
</properties>
</profile>
</profiles>

我创建了一个“ant 启动器”,通过在 Eclipse ant view 下单击来使用它:
<target name="copy war to JBoss local" description="Copy war to local JBoss">
<maven goal="upload:upload" options="-Pdeveloppement" />
</target>

但是您可以简单地在命令行上运行它:
mvn upload:upload -Pdeveloppement

编辑 : 顺便说一句,对于远程部署,您可能需要一个登录密码才能使 scp 工作。您必须将它们添加到 Maven settings.xml 文件中:
<settings>
...
<servers>
<server>
<id>ENV_val</id>
<username>login</username>
<password>password</password>
</server>
</servers>
...
</settings>

编辑 :您需要添加 Atlassian 存储库:
    <pluginRepositories>
<pluginRepository>
<id>Atlassian</id>
<url>https://maven.atlassian.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

编辑 : 根据远程协议(protocol),您必须添加 wagon 扩展,参见 Uploading a directory using sftp with Maven

关于maven - 在 Maven 中,如何使用 wagon 插件复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com