0

レガシープロジェクトを扱っているので、URLのjarファイルからテキストリソースをロードする必要があります。次に、テキストリソースがフィルタリングされ、出力に含まれます。これらのリソースは、リリースされたアーティファクトから取得されます。

resource-pluginから、いくつかのディレクトリを指定することしかできないことがわかりました。必要に応じてリソースをロードすることは可能でしょうか?

このようなことをしたいのですが、ワークスペースで他のプロジェクトの代わりにリモートjarを使用しています。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
    <execution>
    <id>copy-resources</id>
    <phase>process-resources</phase>
    <goals>
        <goal>copy-resources</goal>
    </goals>
    <configuration>
        <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                        <resources>
                            <resource>
                                <directory>../<another project on the same workspace>/src/main/filtered-resources</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

回答の1つで提案されているように、リモートリソースプラグインは、インポートされたバンドルのファイルがターゲットに含まれないため、機能しません。リモートリソースプラグインを使用して元のバンドルを作成する方法はありません(これはまだ使用されているレガシープロジェクトであり、完全に制御できません)。

4

1 に答える 1

1

Mavenリモートリソースプラグインはあなたのニーズに合うと思います。

編集

プラグインの使用ページから取得したスニペット。そのXMLフラグメントは、プラグインをgenerate-sourcesフェーズにアタッチし(ニーズに合わない場合は別のプラグインを選択します)、apache-jar-resource-bundleアーティファクトをダウンロードして、そのコンテンツをに解凍し${project.build.directory}/maven-shared-archive-resourcesます。

bundleより良い結果を得るには、同じプラグインの目標を使用してリソースアーティファクトを作成することをお勧めします。

<!-- Turn this into a lifecycle -->
<plugin>
  <artifactId>maven-remote-resources-plugin</artifactId>
  <version>1.4</version>
  <executions>
    <execution>
      <id>process-remote-resources</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>process</goal>
      </goals>
      <configuration>
        <resourceBundles>
          <resourceBundle>org.apache:apache-jar-resource-bundle:1.0</resourceBundle>
        </resourceBundles>
      </configuration>
    </execution>
  </executions>
</plugin>

編集2:AntRunを使用した代替ソリューション

アーティファクトがMavenのニーズに合わず、さらにカスタマイズしたものが必要な場合は、AntRunプラグインを使用して何らかの方法で入手できます。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
  <executions>
    <execution>
      <id>download-remote-resources</id>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <target>
          <get src="URL of the resource" dest="${project.build.directory}" />
          <unzip src="${project.build.directory}/filename.[jar|zip|war]" dest="${project.build.directory}/${project.build.finalName}" />
        </target>
      </configuration>
    </execution>
  </executions>
</plugin>
于 2013-01-28T14:28:54.610 に答える