2

「.jenkins」または「Temp」ディレクトリにファイルをコピーしたい。

<artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <executions>        
      <execution>
        <id>copy-resource-one</id>
        <phase>install</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>C:\Users\user\.jenkins</outputDirectory>
                    <resources>
                        <resource>
                            <directory>${basedir}/src/main/resources</directory>
                            <includes>
                                <include>htmlTemplate.html</include>
                                <include>Chart.js</include>
                            </includes>
                        </resource>
                    </resources>
          </configuration>                        
      </execution>
    </executions>

これが私の pom.xml が今のところどのように見えるかです。私のローカル マシンでは機能していますが、別のユーザーでは機能しません。

これは私が欲しいものです:

<outputDirectory> relative path to Temp </outPutDirectory>

質問: ファイルが常に「temp」または「.jenkins」フォルダーにコピーされるようにするにはどうすればよいですか? そのための変数はありますか?

4

3 に答える 3

4

Maven では、 Java プロパティをビルドのMaven プロパティとして使用できます。

Maven は からすべてのプロパティを公開しますjava.lang.System。取得System.getProperty()できるものはすべて Maven プロパティで参照できます

したがって、あなたの場合、次のようになります。

<outputDirectory>${java.io.tmpdir}</outputDirectory>

また、出力ディレクトリは、ホスト OS に基づいてユーザーの一時ディレクトリを指します。たとえば、Windows 7 では次のようになります。

C:\Users\<user_Id>\AppData\Local\Temp

Java プロパティの完全なリストについては、次の公式ドキュメントを確認してください。

java.io.tmpdir: デフォルトの一時ファイル パス

あなたも興味があるかもしれませんuser.home

user.home: ユーザーのホームディレクトリ

したがって、おそらく を指したかったでしょう${user.home}\.jenkins

于 2016-03-07T11:19:56.727 に答える
3

上記のコメントで述べたように、ハードコードされたパスを使用することは本当に悪い解決策です。

1 つの解決策は、/target フォルダーに .jenkins フォルダーを作成することです。

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
        <tasks>
          <mkdir dir="${project.build.directory}/.jenkins"/>
        </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>

そして、この .jenkins フォルダーを出力フォルダーとして使用するには:

<configuration>
   <outputDirectory>${project.build.directory}/.jenkins</outputDirectory>
   ...
</configuration>

すべてのビルド マシン (開発者のラップトップまたはサーバー) で動作します。

于 2016-03-07T11:22:06.360 に答える