在Maven中,如何使用Wang插件复制文件?

在Maven中,如何使用Wang插件复制文件?,maven,wagon,maven-wagon-plugin,maven-webstart-plugin,Maven,Wagon,Maven Wagon Plugin,Maven Webstart Plugin,小结:如何使用Maven将一些生成的文件复制到Web服务器(如IIS或Apache)目录中 详情: 我有一个在Maven中构建的工作应用程序。我已经设法使用生成目录target/jnlp中所有需要的文件(.jar和.jnlp)的来构建它。它还创建了一个zip文件,所有文件都位于target/foo-1.0.zip 目前webstart插件没有deploy目标-对它的请求已在服务器上结束。它可能在将来实施,但目前的建议是使用 我从来没用过马车。首先,我想将文件复制到一个由Web服务器提供服务的本地

小结:如何使用Maven将一些生成的文件复制到Web服务器(如IIS或Apache)目录中

详情: 我有一个在Maven中构建的工作应用程序。我已经设法使用生成目录
target/jnlp
中所有需要的文件(.jar和.jnlp)的来构建它。它还创建了一个zip文件,所有文件都位于
target/foo-1.0.zip

目前webstart插件没有
deploy
目标-对它的请求已在服务器上结束。它可能在将来实施,但目前的建议是使用


我从来没用过马车。首先,我想将文件复制到一个由Web服务器提供服务的本地目录。稍后我想远程复制它们,可能使用ftp。有人能举个例子说明我需要向
pom.xml
添加什么才能使本地副本正常工作(希望还有一个ftp示例?)。我在文档中找不到它。通过阅读,我认为我可能还需要,但由于这似乎几乎没有文档,我不确定。

旅行车提供商只提供额外的网络协议支持(如FTP)

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

...
<plugin>
    <groupId>com.atlassian.maven.plugins</groupId>
    <artifactId>maven-upload-plugin</artifactId>
</plugin>
...
编辑:顺便说一句,对于远程部署,您可能需要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>   

大西洋
https://maven.atlassian.com/repository/public
真的
假的

编辑:根据远程协议的不同,您必须添加旅行车扩展,请参见

最后我没有使用Maven upload插件-它似乎有点有限,并且不是Maven主要发行版的一部分。我按照建议使用了maven旅行车插件。下面是我能使其工作的最简单的pom。希望其他人会发现它很有用,因为我很难找到类似的东西

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>wagon-maven-plugin</artifactId>
    <version>1.0-beta-3</version>
    <configuration>
      <fromDir>${project.build.directory}/jnlp</fromDir>
      <includes>*</includes>
      <url>file://c:/inetpub/wwwroot</url>
      <toDir>jnlp</toDir>
    </configuration>
  </plugin>

org.codehaus.mojo
货车司机插件
1.0-beta-3
${project.build.directory}/jnlp
*
文件:://c:/inetpub/wwwroot
jnlp

对于远程发行版,您只需更改URL类型,并可能根据需要添加WAG扩展。

Hi,您能否扩展您的答案以将副本显示到本地服务器?这些文档对于上传插件来说也不是很好。你不应该使用WangMaven插件来实现这一点(请参阅)。此外,Wagen maven插件和maven upload插件都不是来自org.apache.maven,而是来自org.codehaus.mojo和com.atlassian.maven.plugin感谢这些信息——感觉非常奇怪。我可能会坚持现在,但我想我宁愿依靠科德豪斯,而不是阿特拉斯。我会继续寻找更好的方法solution@Tristan,科德豪斯和马文是亲密的朋友;)。
mvn upload:upload -Pdeveloppement
<settings>
  ...
  <servers>
    <server>
      <id>ENV_val</id>
      <username>login</username>
      <password>password</password>
    </server>
  </servers>
  ...
</settings>
    <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>   
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>wagon-maven-plugin</artifactId>
    <version>1.0-beta-3</version>
    <configuration>
      <fromDir>${project.build.directory}/jnlp</fromDir>
      <includes>*</includes>
      <url>file://c:/inetpub/wwwroot</url>
      <toDir>jnlp</toDir>
    </configuration>
  </plugin>