0

私はmavenに不慣れで、そもそも簡単に見える問題にぶつかりましたが、すでに丸一日忙しくしていて、それを機能させる方法がありません。

最初に eclipse:eclipse プラグインの実行の一環として、以下のようなリンク フォルダーを作成します。

<linkedResources>
<linkedResource>
    <name>properties</name>
    <type>2</type>
    <location>${PARENT-2-PROJECT_LOC}/some_other_project/properties</location>
</linkedResource>
<linkedResource>
    <name>properties/messages.properties</name>
    <type>1</type>
    <location>${PARENT-2-PROJECT_LOC}/some_other_project/properties/messages.properties</location>
</linkedResource>

そして、そのフォルダーを以下のようにソースフォルダーとして追加しています。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
  <execution>
    <id>add-source</id>
    <phase>generate-sources</phase>
    <goals>
      <goal>add-source</goal>
    </goals>
    <configuration>
      <sources>
        <source>properties</source>
        <source>some_real_folder</source>
      </sources>
    </configuration>
  </execution>
</executions>
</plugin>

しかし、Eclipse で生成された .classpath を見ていると、「some_real_folder」はありますが、「プロパティ」はありません。デフォルトでは、build-helper-maven-plugin はフォルダーが存在するかどうかを確認し、存在しない場合は追加しないようです。

私はビルドを実行するためにEclipseの外でmaven 3.0.4を使用しています.mavenログで次のようなものを見ることができます:

[INFO] Source directory: <some path>\properties added.

これは私のプロジェクト構造です:

project1 
  \-- properties (this is the real folder) 

project2
   \-- some_real_folder
   \-- properties (this is the link resource pointing to the project1/properties folder)

必要なのは、「some_real_folder」とリンクされたリソース「プロパティ」の両方を project2 の .classpath に追加することだけです

4

1 に答える 1

0

アーティファクトの外部にあるものを直接アーティファクトに含めるのは悪い習慣です。project2 フォルダーの下にあるものと、project2 の依存関係からのものだけを project2 に含める必要があります。(あなたがしていることはまったく可能かどうかはわかりません。)

そのため、project1/properties を project2 で使用できるようにしたい場合は、通常、project1/properties を project1 のアーティファクトにパックし、project1 への依存関係を project2 に追加します。これが何らかの理由で機能しない場合 (たとえば、project1 のものを project2 の別の場所に移動したいなど)、maven-dependency-plugin dependency:copy-dependencies を使用して、project2 のターゲットに適切な場所に解凍できます。

于 2012-11-27T11:02:58.587 に答える