2

マルチモジュール Maven プロジェクトとして C/S フレームワークを作成しました。「サーバー」、「クライアント」、「共通」の 3 つのモジュールがあります。「共通」モジュールのクラスは、「サーバー」と「クライアント」の両方で使用されます。

ただし、スタンドアロンは必要ありませんcommon.jarserver.jar代わりに、「共通」モジュールのクラスをandに直接コンパイルしたいと思いますclient.jar。私がそれを作ることができる方法はありますか?

4

3 に答える 3

2

Maven 依存関係プラグインを使用して、共通の jar を他のプロジェクト に展開できます。

于 2012-07-05T03:15:39.343 に答える
0

定義済みの記述子 jar-with-dependencies で Maven アセンブリ プラグインを使用する

オプション 1: 「サーバー」プロジェクト pom.xml に以下を含めます。

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>

これには、他のサードパーティの依存関係がある場合も含まれます。

オプション 2: このオプションは、サード パーティのライブラリがあれば除外します。

1. pom.xml と同じディレクトリに、以下のように assembly.xml を作成します。

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>custom</id>
    <formats>
        <format>jar</format>
    </formats>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <unpack>true</unpack>
            <scope>runtime</scope>
            <includes>
                <include>common</include>
            </includes>
        </dependencySet>
    </dependencySets>
</assembly>

include タグには<groupId>:<artifactId>format が含まれている必要があります。ここでは、あなたの groupId がわからないため、artifactId 'common' のみが言及されています。

2.「サーバー」pom.xml に以下を含めます。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
            </configuration>
        </plugin>
    </plugins>
</build>

アセンブリ コマンド (assembly:single) を実行します。

于 2012-07-05T04:43:03.433 に答える