安装后复制可运行的jar

Copy runnable jar after install

我需要在安装生命周期中复制网络文件夹中的 运行nable jar。现在我尝试在我的问题上添加更多细节。 我正在使用类似 Maven 的构建工具开发 java 程序。

之后

现在我在我的 pom 中创建了一些配置文件,安装后我需要将我的 运行nable jar 文件移动到网络目录中。例如我有:

  1. 我的 jar 文件在 target/myJar.jar
  2. 网络文件夹在 \192.168.0.11\export\jars

为此,我使用具有以下配置的 maven-upload-plugin:

        <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-upload-plugin</artifactId>
            <version>1.1</version>
                <configuration>
                    <serverId>MyServer</serverId>
                    <resourceSrc>${project.build.directory}${project.build.finalName}.${project.packaging}</resourceSrc>
                    <resourceDest>/home/export/jars</resourceDest>
                    <url>\192.168.0.11\export\jars</url>
                </configuration>
        </plugin> 

我找不到很多关于这个插件的文档,我想要一些关于 resourceSRC、resourceDest、url 的信息。

我 运行 命令 mvn upload:upload -P Production,我得到的任何东西都被复制到我的远程文件夹中。

我哪里做错了?

这是 Java,不是 Windows。尝试对 url 使用 Java 形式。 我相信你的情况 url 会是这样的:

file://192.168.0.11/export/jars

因为您使用的是 maven-upload-plugin,所以根据 doc 它应该是这样的

<url>file://192.168.0.11/export/jars</url>

here 是另一个 post 并取得了一些成功

如果您可以尝试其他插件,这里是另一种使用不同插件的更常见的解决方案

<profiles>   
<profile>
<id>publish</id>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>ftp</id>
      <phase>install</phase>
      <configuration>
        <tasks>
          <ftp action="send" 
              server="${ftp.host}" remotedir="${ftp.remotedir}" 
              userid="${ftp.userid}" password="${ftp.password}" 
              depends="${ftp.depends}" verbose="${ftp.verbose}">
            <fileset dir="${project.build.directory}">
              <include 
                name="${project.build.finalName}.${project.packaging}"/>
            </fileset>
          </ftp>
        </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>
      <version>1.4.1</version>
    </dependency>
    <dependency>
      <groupId>ant</groupId>
      <artifactId>ant-commons-net</artifactId>
      <version>1.6.5</version>
    </dependency>
    <dependency>
      <groupId>ant</groupId>
      <artifactId>ant-nodeps</artifactId>
      <version>1.6.5</version>
    </dependency>
  </dependencies>
</plugin>
<properties>
  <ftp.host>hostname</ftp.host>
  <ftp.remotedir>/opt/path/to/install</ftp.remotedir>
  <ftp.userid>user</ftp.userid>
  <ftp.password>mypassword</ftp.password>
  <ftp.depends>yes</ftp.depends>
  <ftp.verbose>no</ftp.verbose>          
</properties>   
 </profile> 
</profiles>