2

Maven プロジェクト (jar) がありますが、2 つのアーティファクトに分割する必要があります。

次のような2つのmavenアーティファクトが必要です

<groupId>xxx</groupId>
<artifactId>xxx-client</groupId>

<groupId>xxx</groupId>
<artifactId>xxx-impl</groupId>

ただし、すべてのコードは 1 つのプロジェクト内にあります。

私の質問は、プロジェクトをあまり変更せずに、必要な 2 つのアーティファクトをパッケージ化するにはどうすればよいかということです。

それで 、

mvn パッケージのデプロイ

これらの 2 つのアーティファクトをリポジトリに自動デプロイします。実際には、これらのプロジェクトを 2 つの Maven プロジェクトに分割したくありません。

4

4 に答える 4

3

<artifactId>1つのPOMに2つのタグが含まれる可能性があるかどうかはわかりません。これは、一意であるためです。あなたがするかもしれないことは、あなたは2つのpomファイルを持つことができます、例えば、、pom.xmlそしてpom_impl.xml、今

  • クライアントを展開するには、mvn package deploy
  • impl doをデプロイするには、mvn -f pom_impl.xml package deploy

しかし、試したことはありません。


明確化:質問はあいまいに見えます。1つのプロジェクトがあるようですが、同じコードベースの2つのアーティファクト(クライアントとimpl)を生成したいと考えていました。もう一度読んでみると、2つのプロジェクト(2つの異なるコードベース)があるように感じますが、同じプロジェクトの2つのモジュールとして動作するように統合したかっただけです。私の答えは最初のケースを想定しています。

于 2012-01-31T08:25:29.767 に答える
1

質問が正しいと理解した場合は、両方のプロジェクト (xxx-client と xxx-impl) にスーパー pom (xxx/pom.xml) と 2 つの異なる pom が必要です。スーパーポンの構造は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="
             http://maven.apache.org/POM/4.0.0
             http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <packaging>pom</packaging>

    <modules>
        <module>xxx-client</module>
        <module>xxx-impl</module>
    </modules>
</project>

次に、メインの pom をデプロイすると、そのモジュールもデプロイされます。

super pommodulesについて詳しく知りたい場合は、以下のリファレンスを参照してください。

于 2012-01-31T08:32:10.827 に答える
0

これは、Maven の世界では「マルチ モジュール プロジェクト」と呼ばれます。これを行う方法についての情報は、ここなどで見つけることができます。実際、2 つの別個の POM と、両方を組み合わせるには追加の 1 つが必要です。

于 2012-01-31T08:49:08.147 に答える
0

指定ポンポン

2 つの pom を作成し、コマンド ラインで pom を指定するのが最も簡単な方法です。

于 2012-02-01T01:17:29.227 に答える