0

私はいくつかのリファクタリング(およびモジュール名の明確化)を行ったプロジェクトを持っています。

結果として、以前のモジュールはにneo4j-connector-implなりましneo4j-connector-1.6た。さて、互換性を高めるために、このプロジェクトで作成されたjarをneo4j-connector-impl(私をフォローしている場合は古い名前)としても利用できるようにしたいと思います。

これらのGAV座標で型付きプロジェクトを作成し、maven-dependency-pluginbuild-helper-maven-pluginpomを組み合わせてjarをアタッチしてみました。

残念ながら、プロジェクトをビルドするたびに、そのjarはmavenリポジトリになく、mavenは言います

[INFO] Installing C:\Users\ndx\Documents\workspaces\git\neo4j-connector\neo4j-connector-impl-parent\neo4j-connector-impl\neo4j-connector-impl-1.6.jar to C:\Users\ndx\.m2\repository\com\netoprise\neo4j-connector-impl\1.6-SNAPSHOT\neo4j-connector-impl-1.6-SNAPSHOT.jar
[DEBUG] Skipped re-installing C:\Users\ndx\Documents\workspaces\git\neo4j-connector\neo4j-connector-impl-parent\neo4j-connector-impl\neo4j-connector-impl-1.6.jar to C:\Users\ndx\.m2\repository\com\netoprise\neo4j-connector-impl\1.6-SNAPSHOT\neo4j-connector-impl-1.6-SNAPSHOT.jar, seems unchanged

それで...どうすればそのjarを分類された依存関係として置くことができますか?

情報については、ここに私のpomがあります

<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>
    <parent>
        <groupId>com.netoprise</groupId>
        <artifactId>neo4j-connector-impl-parent</artifactId>
        <version>1.6-SNAPSHOT</version>
    </parent>
    <artifactId>neo4j-connector-impl</artifactId>
    <packaging>pom</packaging>
    <description>Compatibility module ensuring previous code can "quite" work</description>
    <properties>
        <dependencies.directory>${project.build.directory}/dependencies</dependencies.directory>
    </properties>
    <dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>${project.artifactId}-1.6</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeGroupIds>${project.groupId}</includeGroupIds>
                            <excludeTransitive>true</excludeTransitive>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <stripVersion>true</stripVersion>
                            <outputDirectory>${dependencies.directory}</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- attach all projects artifact to this one in order for user projects 
                to have minimum integration work -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <!--  for maximum compatibility, the 1.6 version is attached as default jar artifact -->
                                <artifact>
                                    <file>neo4j-connector-impl-1.6.jar</file>
                                    <type>jar</type>
                                </artifact>
                            </artifacts>
                            <basedir>${dependencies.directory}</basedir>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

編集1アーティファクトにバージョン番号があるのはなぜですか?そのプロジェクト(neo4j-jca-connector)は、さまざまなJavaEEサーバーへのneo4jグラフデータベースへのアクセスを提供します。neo4jバージョンは、このコネクタによって制約されるべきではありません(SHOULDNOT)。結果として、そのコネクタのバージョンに対して、どのneo4jバージョンが使用されるかを定義する方法をユーザーに提供する必要があります(デフォルトとして、下位互換性バージョンの場合は1.6バージョンを考慮します)。

結果として、neo4j、nのバージョンごとに1つのモジュールがあり、これらのモジュールはここに集約されます。記録のために、BouncycastleはJDKバージョンに対してそうします...さらに悪いバージョンでは、artifactIdで直接JDKバージョンを使用するため、内部的にのみ実行する予定です:公開されたアーティファクトはneo4j-connector-implになりますおよびneo4j-connector-rar...および分類子を使用すると、使用するneo4jのバージョンを選択できます。

編集2詳細については、プロジェクト全体をgithubで確認できます:https ://github.com/Riduidel/neo4j-connector

maven-shade-plugin宣言を含む親pomはhttps://github.com/Riduidel/neo4j-connector/blob/master/neo4j-connector-impl-parent/pom.xmlです。

そのコネクタの1つのバージョンは、https://github.com/Riduidel/neo4j-connector/blob/master/neo4j-connector-impl-parent/neo4j-connector-impl-1.5/pom.xmlです。

また、予想されるアグリゲーターモジュールはhttps://github.com/Riduidel/neo4j-connector/blob/master/neo4j-connector-impl-parent/neo4j-connector-impl/pom.xmlである必要があります

4

1 に答える 1

0

コメントと編集を読んだ後、これははるかに明確になります。

ですから、間違っていたら訂正してください。

  • 各neo4jバージョンにコネクタのバージョンを提供できるようにしたい
  • そのためにモジュールを使用します。

まだはっきりしていないのは、POM のモジュールの部分が見えないことです。分類子を使用したいと言いますが(つまり、同じプロジェクトの)、mavenモジュールは異なるプロジェクトです...

于 2013-02-25T15:25:09.810 に答える