0

「D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\java\com\sample」ディレクトリにある Java ファイルをコンパイルする pom.xml を作成しました。

ここで、ディレクトリ「D:\Windchill_Market\ERP Connector\SourceCode\Build\src1」にあるすべてのファイルを jar する必要があります。

私のpom.xmlの下:

<sourceDirectory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\java</sourceDirectory>
<plugins>  
    <plugin>                    
        <groupId>org.apache.maven.plugins</groupId>             
        <artifactId>maven-compiler-plugin</artifactId>              
        <version>2.5.1</version>              

    </plugin>   
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

クラスファイルを生成できます。しかし、必要なディレクトリからすべてのファイルを jar することはできません。sourceDirectory のファイルのみが jar されています。maven-source-plugin でインクルードタグを使ってみました。しかし、うまくいきません。

助けてください。

ありがとう

4

4 に答える 4

0

Maven は、ソースとその他のファイル (いわゆるリソース) に異なるフォルダーを使用します。そこからsrc\main\javaすべてのファイルをコンパイルし、結果のファイルを jar に.javaパッケージ化します。.classそのディレクトリ内の他のすべてのファイルは、私の知る限り無視されています。

他のファイルもパッケージ化したい場合は、src\main\resources代わりにそれらを入れてください。

編集

リソース ディレクトリを手動で指定するには

<resources>
    <resource>
        <directory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\resource</directory>
    </resource>
</resources>

あなたの<build>セクションへ

于 2013-08-19T10:07:39.850 に答える
0

maven-source-plugin は、本来あるべきことを正確に行います。src/main/java のソースを jar します。src/main/resources も含まれている可能性がありますが、わかりません。

プロジェクトのルートから始まるすべてをアーカイブするようになんとか管理すると、それを悪用します。Maven が生成された JAR を適切に使用するには、その内部構造が通常の JAR の構造を反映している必要があります。そのため、すべてのパッケージがそこにある必要があり、内部のファイルだけが「.class」ではなく「.java」になります。そうでない場合、Eclipse やその他のツールはこれらのソース ファイルを検出できません。

プロジェクトの「ソース配布」と呼ばれるものを作成したい場合は、Maven Assembly Pluginを確認する必要があります。プロジェクトから非常に柔軟な方法でパッケージを作成できます。プロセスを順を追って説明するには、はるかに長い回答が必要になります。プラグインのドキュメントをよく読んで、より具体的な問題が発生したときに戻ってきてください。あなたのケースでうまくいくかもしれない事前定義された設定があります。

簡単に言えば、次のようなものが機能するはずです。

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>src</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin>
于 2013-08-19T12:23:39.007 に答える
0

この Maven 機能は、JavaFX プロジェクトにとって致命的でした。Eclipse で実行 - すべて正常に動作します。jar の作成 - 開始時に「javafx jar java.lang.IllegalStateException: Location is not set」を取得します。解決策: リソース ファイル (fxml、png など) をソース パッケージ内のフォルダー (ここでは src/MyProjectName/javafx) に置き、pom ファイルを変更します。

<sourceDirectory>src</sourceDirectory>
<resources>
  <resource>
    <!-- initially Maven makes this string <directory>src</directory> -->
    <directory>MyProjectName/javafx</directory>
    <excludes>
      <exclude>**/*.java</exclude>
    </excludes>
  </resource>
</resources>
于 2021-01-13T07:46:13.580 に答える
-1

すべての答えをありがとう。build-helper-maven-plugin を使用してこの問題を解決できました。

于 2013-08-20T09:48:10.387 に答える